题目:

问题解析:

这是典型的/Fibonacci 数列问题。具体这里不赘述。

问题中不论是初始的第1对兔子还是以后出生的小兔子都是从第3个月龄起每个月各生一对兔子。

设n1,n2,n3分别是每个月1个月月龄,2个月月龄,大于等于3个月月龄的兔子数量。则下个月这三个类型月龄兔子数量分别是 n3, n1, n3+n2。

即:下个月1个月月龄兔子数量是上个月大于等于3个月月龄兔子的数量,2个月月龄兔子数量是上个月1个月月龄兔子数量,大于等于3个月月龄兔子数量是上个月大于等于3个月月龄兔子数量加上上个月2个月月龄兔子数量。

程序:

 #include <stdio.h>
int main(void) {
/*n1, n2, n3 分别是有1个月月龄,2个月月龄,3个月月龄的兔子数量*/
int n1 = , n2 = , n3 = ;
/*total 是兔子总数量*/
int total = ;
/* i 是月份, num是输入变量, t是中间变量 */
int i=, num, t;
printf("请输入数量:");
scanf("%d", &num);
while(){
total = n1 + n2 + n3;
if(total >= num) break;
/*求下个月兔子数量*/
i += ;
/*下面四行语句注意顺序不能混乱*/
t = n1;
n1 = n3 + n2;
n3 += n2;
n2 = t;
}
printf("所需月数:%d\n", i);
return ;
}

程序执行结果:

问题表述中可能不严谨的地方:

1. 第一对兔“第3个月起”, 新生兔子“第3个月后”。不够严谨,因为月是一个时间段,应统一理解为“三个月后”。上述程序也是这么理解的。

2. “第几个月时兔子总数才可以达到n对?”。似乎有歧义:刚好达到n对还是大于等于n对。上述统一理解为“大于等于n对”。

最新文章

  1. SVN图形管理工具-Submint
  2. word域1
  3. float、定位、inline-block、兼容性需注意的特性总结
  4. 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
  5. 毫米转换为PX
  6. &lt;s:url&gt;指向的Action只执行一次,清除浏览器缓存文件后又可执行一次。
  7. Rstudio使用记录
  8. ecshop商品详细描述调用商品相册代码
  9. Nginx基础知识————生成自签名ca 证书 使nginx 支持https
  10. 数据结果与算法分析(1)&mdash;&mdash;算法分析
  11. [Audio processing] wav音频文件读取int和double数组的关系
  12. bzoj2208 [Jsoi2010]连通数(scc+bitset)
  13. ListView用法总结C#
  14. Go中string转[]byte的陷阱
  15. Linux内存管理 (20)最新更新和展望
  16. Python学习记录之(五)-----类进阶篇
  17. 【Jenkins】Jenkins安装修改默认路径和端口的方法
  18. UE 不生成.bak文件
  19. 个人新站 【EXP技术分享博客】 落成~ 全新的技术资源~ 欢迎莅临~
  20. CUDA ---- 线程配置

热门文章

  1. 工作笔记——使用Jest时遇到的一些问题
  2. forEach循环
  3. ISP PIPLINE (二) LensShading Correct
  4. 爬虫——scrapy入门
  5. 【安全性测试】Android测试中的一点小发现
  6. css样式的六种选择器
  7. centos7.4中安装docker
  8. PC_官网设计
  9. swust oj 983
  10. Python Learning - Three