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