1576 - 数列1
编写一个求斐波那契数列的递归函数,输入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
C语言解答
#include <stdio.h> void turn(int a[],int n) { int x,i,j,k; scanf("%d",&x); a[0]=0;a[1]=1; for(i=2;i<20;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<x;i++) { for(j=0;j<2*(x-i-1);j++) printf(" "); for(k=0;k<=2*i-1;k++) printf("%d ",a[k]); printf("%d\n",a[k]); } } int main() { int n,a[20],i; scanf("%d",&n); for(i=0;i<n;i++) turn(a,n); return 0; }
C++解答
#include <iostream> #include <cstdio> using namespace std; int fun(int n) { if(n==0) return 0; else if(n==1) return 1; else return fun(n-1)+fun(n-2); } int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int n, t; cin >> t; while (t--) { cin>>n; for(int i=0; i<n; i++) { for(int j=0; j<(2*n)-(2*i+2); j++) cout<<" "; for(int k=0; k<2*i; k++) cout<<fun(k)<<" "; cout<<fun(2*i)<<endl; } } return 0; }