• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

c++ 探讨奶牛生子的问题

c++ 搞代码 4年前 (2022-01-06) 22次浏览 已收录 0个评论

一只刚出生的奶牛,第4年开始生一只奶牛(假设只生母牛),以后每年生一只。现在给你一只刚出生的奶牛,求20年后有多少奶牛

奶牛生子问题
描述:一只刚出生的奶牛,第4年开始生一只奶牛(假设只生母牛),以后每年生一只。现在给你一只刚出生的奶牛,求20年后有多少奶牛?
自己试着写了两个方法,不足之处,还望指正!

代码如下:
// CowsChildren.cpp : 定义控制台应用程序的入口点。
#include “stdafx.h”
#include
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) << " "
  << CalCo来源gaodaimacom搞#^代%!码&网wsNum2(iYear)<< endl;
 return 0;
}

以上就是c++ 探讨奶牛生子的问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:c++ 探讨奶牛生子的问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址