描述
一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。某人领养了一对小兔子,一公一母,请问第N个月以后,他将会得到多少对兔子。
输入
测试数据包括多组,每组一行,为整数n(1≤n≤90)。
输入以0结束。
输出
对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。
样例输入
1
2
0
样例输出
1
2
提示
数据类型可以用64位整数:__int64或long long
#include <stdio.h>
int main()
{
long long month0=1,month1=1,month2=1,number=3,t=0;
int i,n;
while(scanf("%d",&n),n!=0){
if(n<=3)printf("%d\n",n);
else{
for(i=3;i<n;i++){
t=month0;
month2=month1+month2;
month0=month2;
month1=t;
number=month0+month1+month2;
}
printf("%lld\n",number);
month0=month1=month2=1;number=3;
}
}
return 0;
}
月份 未成熟 一月熟 二月熟 总数
1 0 1 0 1
2 1 0 1 2
3 1 1 1 3
4 2 1 2 5
5 3 2 3 8
6 5 3 5 13