杭电1715大菲波数
题目;
Problem Description
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
1;一个包含大数的菲波数列。刚开始感觉很蒙的,这肯定要打表啊,这怎么进行大数相加啊,毕竟之前也没有看见过这样的方法,至于方法上篇博客就已经说了。这里就不在多说直接摆代码了。
#include<stdio.h>
int a[1006][504] ={0};
int main()
{
int n, m, i, j, k;
a[1][0] = 1;
a[2][0] = 1;
for(i = 3; i <= 1000; i++){
k = 0;
for(j = 0; j <= 500; j++){
a[i][j] = a[i-1][j]+a[i-2][j]+k;
k = a[i][j]/10;
a[i][j] = a[i][j]%10;
}
}
scanf("%d",&n);
while(n--){
scanf("%d",&m);
for(i = 500; ; i--){
if(a[m][i] != 0){
break;
}
}
for( ; i != -1; i--){
printf("%d",a[m][i]);
}
printf("\n");
}
}