繁殖问题
现在有一对兔子,从出生起第三个月起每个月都生一对兔子。新生的一对兔子出生后第三个月也每月生一对兔子。假如兔子都不死。问到第几个月时,兔子总数为n对?
变量描述:
(注意问题和解题都是以“对”为单位的)
代码:
#include<stdio.h>
int main(){ int num,i = 1;
int n1 = 1,n2 = 0,n = 0,sum = 1;
printf("请输入兔子总对数(至少为2):");
scanf("%d",&num);
printf("\n\n___________________________兔子繁殖表格___________________________\n") ;
printf("\n第i月\t幼年兔对数\t过渡兔对数\t成年兔对数\t兔子总对数\n");
printf("%5d\t%10d\t%10d\t%10d\t%10d\n",i,n1,n2,n,sum) ;
for(i=2;sum<num;++i)
{
n = n+n2;
n2 = n1;
n1 = n;
sum = n1+n2+n; printf("%5d\t%10d\t%10d\t%10d\t%10d\n",i,n1,n2,n,sum) ;
}
printf("____________________________________________________________________\n\n") ;
printf("因此,第 %d 个月繁殖的兔子总对数为%d\n",i-1,num);
return 0;
}
样例:
请输入兔子总对数(至少为2):6
___________________________兔子繁殖表格___________________________
第i月 幼年兔对数 过渡兔对数 成年兔对数 兔子总对数
1 1 0 0 1
2 0 1 0 1
3 1 0 1 2
4 1 1 1 3
5 2 1 2 5
6 3 2 3 8
____________________________________________________________________
因此,第 6 个月繁殖的兔子总对数为6