大菲波数
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Output输出为N行,每行为对应的f(Pi)。
Sample Input
5 1 2 3 4 5Sample Output
1
1
2
3
5
1
2
3
5
代码:
#include<cstdio>
#include<cstring>
int s[1010][1010];
int main()
{
int sum,r=0;
int n,a;
s[1][1]=1,s[2][1]=1; //不能是S【0】【0】=1,S【1】【0】=1;(时间超限)
for(int i=3;i<1001;i++)
{
for(int j=1;j<1001;j++)
{ //打表;
sum=s[i-1][j]+s[i-2][j]+r;
s[i][j]=sum%10;
r=sum/10;
}
}
scanf("%d",&n);
while(n--)
{
int j;
scanf("%d",&a);
for(j=1001;j>=1;j--)
{
if(s[a][j])break; //除去是0的数
}
for(;j>=1;j--)
printf("%d",s[a][j]);
printf("\n");
}return 0;
}