3258:兔子产子
总时间限制: 1000ms 内存限制: 65536kB
描述
从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样一代一代生下去,求解兔子增长数量的数列。
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)
输出
输出有1行,每行输出对应一个输入。输出应是一个正整数序列,整数之间用空格分开。
样例输入
3
3
2
1
样例输出
1 1 2
1 1
1
来源
cs10107 C++ Final Exam
问题链接:Bailian3258 兔子产子
问题简述:(略)
问题分析:递推问题,关键是找到递推式。打表是必要的,可以加快计算速度。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian3258 兔子产子 */
#include <bits/stdc++.h>
using namespace std;
const int N = 20;
int fib[N + 1];
void init()
{
fib[1] = fib[2] = 1;
for(int i = 3; i <= N; i++)
fib[i] = fib[i - 2] + fib[i - 1];
}
int main()
{
init();
int n, a;
scanf("%d", &n);
while(n--) {
scanf("%d", &a);
for(int i = 1; i <= a; i++)
if(i == 1) printf("%d", fib[i]);
else printf(" %d", fib[i]);
printf("\n");
}
return 0;
}