题目描述
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?
本题有多组数据。
数据范围:每组输入满足 【1,31】
输入描述:
多行输入,一行输入一个int型整数表示第n个月
输出描述:
每一行输出对应的兔子总数
示例1
输入:
1
2
3
4
5
9
输出:
1
1
2
3
5
34
题解描述
观察每个月数据可知,第n个月的兔子数目等于n-1月的数目加n-2月的数目
代码实现
#include <stdio.h>
int main()
{
int n;
int rabbits[32] = {0};
rabbits[0] = 1;
rabbits[1] = 1;
while(scanf("%d", &n) != EOF) {
for(int i = 2; i < n; ++i) {
rabbits[i] = rabbits[i - 1] + rabbits[i - 2];
}
printf("%d\n", rabbits[n - 1]);
}
return 0;
}