1071:菲波那契數
時間限制: 1000 ms 記憶體限制: 65536 KB
送出數: 40446 通過數: 20533
【題目描述】
菲波那契數列是指這樣的數列: 數列的第一個和第二個數都為1,接下來每個數都等于前面2個數之和。給出一個正整數k,要求菲波那契數列中第k個數是多少。
【輸入】
輸入一行,包含一個正整數k。(1 ≤ k ≤ 46)
【輸出】
輸出一行,包含一個正整數,表示菲波那契數列中第k個數的大小。
【輸入樣例】
19
【輸出樣例】
4181
【來源】
No
#include<iostream>
#include<cstdio>
int s[2333];
using namespace std;
int main()
{
int k;
cin>>k;
s[0]=1;
s[1]=1;
if(k==0||k==1||k==2) printf("%d",1);
else{
for(int a=2;a<k;a++)
s[a]=s[a-1]+s[a-2];
for(int a=2;a<k;a++)
s[k]=s[a];
cout<<s[k];
}
return 0;
}