题目描述
编写一个求斐波那契数列的递归函数,输入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<stdio.h>
int func(int n)
{
if(n==0) return 0;
else if(n==1) return 1;
else return func(n-1)+func(n-2);
}
int main()
{
int n,m;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
for(int i=1; i<=n; i++) //i表示层数
{
for(int j=0; j<2*(n-i); j++) //j表示每行行首空格个数(j的范围是关键)
{
printf(" ");
}
for(int k=0; k<2*i-1; k++)
{
printf("%d",func(k)); //输出每行的数字
if(k<2*i-2)
{
printf(" "); //除最后一个数字外,每个数字之间输出一个空格
}
}
printf("\n");
}
}
return 0;
}