<C语言经典100例>c9 兔子生长
来源:互联网 发布:编程的小松鼠壁挂炉 编辑:程序博客网 时间:2024/06/06 16:31
/* 【程序9】 *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? *程序分析:兔子总数规律:2,2,4,6,10,16.... 兔子对数的规律为数列1,1,2,3,5,8....,在数列前补0,就会发现某个月兔子的对数为前两个月之和,采用递归思路做 */#include <stdio.h>int ret(int mon);int main(int argc, char const *argv[]){int mon;printf("请输入月:");scanf("%d", &mon);int sum = ret(mon);printf("第%d月后兔子总数为:%d\n", mon, sum*2);return 0;}int ret(int mon){if (mon==1 || mon==2){return 1;}elsereturn ret(mon-1)+ret(mon-2);}
为什么某个月的兔子数等于前两个之和呢?
这样来分析分析,
我们将兔子分成“大、中、小”三个阶段,兔子出生的第一个月为小兔子,第二个月为中兔子,第三个变成大兔子有了生育能力:
可见某个月的大兔子对数为前前月的兔子总数,中兔子对数+小兔子对数为前月的兔子总数。故这个月的对数为前月+前前月对数。
阅读全文
0 0
- <C语言经典100例>c9 兔子生长
- C语言经典算法100例-011-兔子问题
- 兔子问题C语言
- C语言经典100例
- C语言经典100例
- C语言经典100例
- C语言经典100例
- c语言经典100例
- C语言经典100例
- C语言经典100例
- c语言经典100例
- C语言经典100例 (转)
- C语言经典算法100例
- c语言经典100例之15
- c语言经典程序100例
- c语言经典例题100例
- C语言经典100例 - 001
- C语言经典100例 - 002
- 倍增 LCA
- leetcode解题方案--004--MedianofTwoSortedArrays
- 数据结构-双链表删除
- OpenCV图像的傅里叶变换-(补番)
- 【PAT】【Advanced Level】1131. Subway Map (30)
- <C语言经典100例>c9 兔子生长
- 1059. Prime Factors (25)
- grep中使用"\d"匹配数字不成功的原因
- ccf2017-03-3 MarkDown 神烦神烦的模拟题
- leetcode题目例题解析(二)
- hrbust 1492 盒子 二分图最大匹配
- 字符串相似度算法
- C语言——数组与指针-元素的值
- Redis的安装过程及与SSM结合使用