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;
}