古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
先将前几个月的兔子数量算出来,查看规律
前几个月的兔子对数为:1 1 2 3 5 8 13。。。
规律:前两项相加等于第三项
细节:
1.前两个月的处理
2.总数为最终结果*2(一对兔子有两只)
#include<stdio.h>
int main()
{
//sum为兔子对数 small为小兔子数 n为月数 tmp为小兔子没长大前的数量
int sum=1, small=0, n, tmp;
for(n=1;n<=40;n++)
{
if(n != 2) //第二个月初代兔子还没长大
tmp = small;
small = sum; //长大的小兔子
sum += tmp; //总数 大兔子加小兔子
printf("%10d\t",sum*2); //总数为总对数*2
if(n % 4 == 0) //美观
printf("\n");
}
return 0;
}