题目链接:
点击打开链接
大菲波数
Fibonacci数列,定义如下:
f(1)=f(2)=1 ,
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,
接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
5
1
2
3
4
5
Sample Output
1
1
2
3
5
|
先贴代码:
#include<iostream>
#include<memory.h>
#include<algorithm>
#include<stdio.h>
#include<stdio.h>
using namespace std;
int a[1003][1003];
int main()
{
memset(a,0,sizeof(a));
int n;
int c,s;
a[1][0] = a[2][0] = 1;
for(int i = 3; i <= 1003; i++)
{ c=0;
for(int j = 0; j < 1003; j++)
{
s = a[i-1][j] + a[i-2][j] + c;
a[i][j] = s % 10;
c = s / 10;
}
}
int t,m;
scanf("%d",&t);
while(t--)
{
scanf("%d",&m);
int i;
for( i = 1000; i >= 0; i--)
{
if(a[m][i] != 0)
break;
}
for(int t=i; t >= 0; t--)
printf("%d",a[m][t]);
printf("\n");
}
}