1576 - 数列1

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

题目输入

输入第一行为样例数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;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题