前言
希望这次是一个常规题目,别搞笑脸了
第十一题
题目:
古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
碎碎念:
这题我又知道了,不就是Fibonacci数列吗,哇哈哈哈哈
我的思路:
1、分析:
兔子生崽规律:1,1,2,3,5,8,13,21,…,转化为公式:
f1=1 (n=1)
f2=1 (n=2)
f3=fn-1+fn-2 (n>=3)
2、输入:两只兔子
输出:输出前40个月的兔子总数
3、再分析:
既然兔子按天数成比例增长,那么按月成比例增长也是可行的。
我的过程:
#include <stdio.h>
int main()
{
int a1=0, a2=1, n=1, x, month;
for(month=1;month<=40;month++)
{
if(month>2){
n=n+a2;
x=a2;
a2=a1+a2;
a1=x;
}
printf("%d月的兔子总数为%d\n",month,n);
}
}
运行结果: