问题 B: 数列
时间限制: 1 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
User: 吴锦诚 Date: 2018/6/2
#include <iostream>
using
namespace
std;
void
toString(
int
fi[],
int
n) {
int
temp = 0;
for
(
int
i = 0; i < n; i++) {
temp = 2 * i ;
for
(
int
k = 1; k < n - i; k++) {
cout <<
" "
;
}
for
(
int
j= 0; j <= temp; j++) {
cout << fi[j] <<
" "
;
}
cout << endl;
}
}
int
fibo(
int
fi[] ,
int
index) {
if
(index <=2) {
return
fi[index];
}
else
if
(fi[index] != 0) {
return
fi[index];
}
fi[index] = fibo(fi, index - 1) + fibo(fi, index - 2);
//cout << "f(" << index << ")=" << fibo(fi, index - 1) << "+" << fibo(fi, index - 2) << endl;
return
fi[index];
}
int
main()
{
int
fi[21] = { 0,1,1 };
int
m,n;
cin >> m;
while
(cin >> n){
fibo(fi, 2 * n );
toString(fi, n);
}
return
0;
}
/**************************************************************
Problem: 2018
User: morizunzhu
Language: C++
Result: 正确
Time:0 ms
Memory:2020 kb
****************************************************************/