本帖最后由 1wang2huan 于 2015-9-6 14:36 编辑
问题来源:
兔子问题 完全混乱 求帮助
http://bbs.itheima.com/thread-234606-1-1.html
(出处: 黑马程序员IT技术论坛)
具体问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?
- #include <stdio.h>
- /**
- * 递归函数计算
- *
- * @param n 想查看的第几个月
- *
- * @return 兔子的数量
- */
- int Rabbits(int n){
- int total;
- if (1 == n || 2 == n) {
- total = 2;
- }else{
- total = Rabbits(n-1)+Rabbits(n-2);
- }
- return total;
- }
- //主函数
- int main() {
- int n = 1;
- printf("请输入你想查第几个月的兔子:\n");
- scanf("%d",&n);
- getchar();
- int total = Rabbits(n);
- printf("第%d个月有%d只兔子",n,total);
- return 0;
- }
复制代码
16楼的这个代码也不错,思路挺清楚,支持一下.
我只是比较习惯用递归解这样的可以递推的公式!
数学的思想,让我感到亲切,
我这里写出这个递归思路,只是为了交流用,不是装哦! |