问题 B: 数列
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。
输入
输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。
输出
对应每个样例输出要求的图形(参见样例格式)。
样例输入
1
6
样例输出
0
0 1 1
0 1 1 2 3
0 1 1 2 3 5 8
0 1 1 2 3 5 8 13 21
0 1 1 2 3 5 8 13 21 34 55
#include <iostream>
using namespace std;
int f(int n) {
if (n == 1)
return 1;
if (n == 0)
return 0;
return f(n - 1) + f(n - 2);
}
int a[11];
int main() {
int m, n;
while (cin >> m) {
while (m--) {
cin >> n;
for (int i = 0; i < 2 * n - 1; ++i) {
a[i] = f(i);
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
cout << " ";
}
for (int j = 0; j < 2 * (i + 1) - 1; ++j) {
cout << a[j] << " ";
}
cout << endl;
}
}
}
return 0;
}