题目
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问40个月的兔子总数为多少?
兔子的规律为数列1,1,2,3,5,8,13,21…
题目分析
假设兔子成长分为三个阶段,分别是小兔子、中兔子、大兔子阶段,刚出生的为小兔子,当成长为大兔子的当月,会生下一对小兔子
按照兔子的对数进行统计,可以绘制如如下表格:
从这个表里面就可以看出来,第N月兔子的对数,实际就是斐波那契数列。
兔子的总数,实际就是第N月兔子的对数再乘以2。
程序
#include "stdio.h"
#define N 40 //定义第几个月
int main()
{
int a,b,f,i;
a=1,b=1,f=0;
printf("第%d月后,兔子的数量为%d \n",1,2*a);
printf("第%d月后,兔子的数量为%d \n",2,2*b);
for(i=3; i<=N; i++)
{
f=a+b;
printf("第%d月后,兔子的数量为%d \n",i,2*f);
a=b;
b=f; //更新a,b的值
}
}