满意答案
因为只有6年,定义一个数组存储第n年各岁兔子的数量
#include
int sum(int n)
{
int i,j,a[6];
a[0]=1; //初始化,第一年只有1对,都是1岁
for(i=1; i < 6; i++)
a[i] = 0; //初始化,第一年只有1对,其余为0
for(i=1; i < n; i++)
{//第n年x岁的兔子数是第n-1年x-1岁兔子的数量
// a[x] a[x-1]
for(j=5;j>0;j--)
a[j] = a[j-1];//7岁的就会死掉,直接丢弃
//到3岁就可以生一对,所以从3(数组从0开始,故这里是2)加到6
a[0] = a[2] + a[3] + a[4] + a[5];
}
return (a[0] + a[1] + a[2] + a[3] + a[4] + a[5]);
}
void main()
{
int i=1;
for(i=1; i < 25; i++)
{
printf("%-3d", i);
printf(":%5d\n", sum(i));
}
}
02分享举报