問題 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
經驗總結
遞歸的斐波那契很簡單,就注意一下輸出圖形的構造,其他的就沒什麼難的啦~
AC代碼
#include <cstdio>
int f(int a)
{
if(a==0||a==1)
return 1;
else return f(a-1)+f(a-2);
}
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int k=0;k<n;k++)
{
int num;
scanf("%d",&num);
for(int i=0;i<num;i++)
{
for(int j=0;j<num-1-i;j++)
printf(" ");
if(i!=0)
{
printf("0 ");
for(int j=0;j<2*i-1;j++)
printf("%d ",f(j));
printf("%d\n",f(2*i-1));
}
else printf("0\n");
}
}
}
return 0;
}