1201:菲波那契數列
阿新 • • 發佈:2019-02-13
時間限制: 1000 ms 記憶體限制: 65536 KB
提交數: 2953 通過數: 1731
【題目描述】
菲波那契數列是指這樣的數列: 數列的第一個和第二個數都為1,接下來每個數都等於前面2個數之和。
給出一個正整數a,要求菲波那契數列中第a個數是多少。
【輸入】
第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括一個正整數a(1≤a≤20)。
【輸出】
輸出有n行,每行輸出對應一個輸入。輸出應是一個正整數,為菲波那契數列中第a個數的大小。
【輸入樣例】
4
5
2
19
1
【輸出樣例】
5
1
4181
1
【來源】
No
【程式碼】
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int feibo(int n) //斐波那契數列演算法
{
if(n==1||n==2)
{
return 1;
}
else
{
return feibo(n-1)+feibo(n-2);
}
}
int main()
{
int n;
int a[1000 ];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
cout<<feibo(a[i])<<endl;
}
return 0;
}
【解題思路】
這道題很簡單,用遞迴很簡單的就會做出來,因為每一個數都等於前兩個數相加,所以就可以不停的呼叫遞推歸的函式進行加法,但是一定要注意初始化。