天天看点

递归--斐波那契数列

问题 B: 数列

时间限制: 1.000 Sec  内存限制: 32 MB

提交: 1437  解决: 785

[提交] [状态] [命题人:外部导入]

题目描述

编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。

输入

输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。

输出

对应每个样例输出要求的图形(参见样例格式)。

样例输入 Copy

1
6      

样例输出 Copy

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>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int a[200]= {0};
int getSum(int n)
{
    if(n==0)
        return a[0];
    if(n==1)
        return a[1];
    a[n]=getSum(n-1)+getSum(n-2);
    return a[n];
}
int main(int argc, char *argv[])
{
    a[0]=0;
    a[1]=1;
    int cc=getSum(20);
    int m,n;
    scanf("%d",&m);
    for(int j=0; j<m; j++)
    {
        scanf("%d",&n);
        if(n>=1)
        {
            for(int i=1; i<2*n; i+=2)
            {
                for(int l=1; l<2*n-i; l++)
                {
                    printf(" ");
                }
                for(int k=0; k<i; k++)
                {
                    printf("%d ",a[k]);
                }
                printf("\n");
            }
        }
    }
    return 0;
}
           

继续阅读