c+++は乳牛の出産問題を検討します。
1628 ワード
乳牛の出産問題の説明:生まれたばかりの乳牛は、4年目から1頭の乳牛を産み始めました。その後は毎年一匹を産みます。今、生まれたばかりの乳牛をあげます。20年後の乳牛はいくらですか?自分で二つの方法を書いてみました。足りないところは指摘してください。
// CowsChildren.cpp : 。
#include "stdafx.h"
#include <iostream>
using namespace std;
//
int CalCowsNum1(int iYear)
{
int iCowNum = 1;
for (int iCnt = 1; iCnt <= iYear; iCnt++)
{
if (iCnt >= 4) //
{
if ((iYear - iCnt) >= 4) // 2 ,
{
iCowNum += CalCowsNum1(iYear - iCnt);
}
else
{
iCowNum ++;
}
}
}
return iCowNum; //
}
// ,
// , ,
// , ( , , )
int CalCowsNum2(int iYear)
{
int iCowNum = 1;
if (iYear == 1 || iYear ==2 || iYear ==3) // 1
{
return iCowNum;
}
if (iYear == 4)
{
iCowNum = 2; // 2
return iCowNum;
}
return CalCowsNum2(iYear - 1) + CalCowsNum2(iYear - 4); // 4 ,
} // f(n) = f(n-1) + f(n-4) (n>4 )
int _tmain(int argc, _TCHAR* argv[])
{
int iYear = 0;
cout << "Please input required years: " ;
cin >> iYear;
cout << endl << "The years you input is " << iYear
<< " and the number of cows is " << CalCowsNum1(iYear) << " "
<< CalCowsNum2(iYear)<< endl;
return 0;
}