|
|
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
Sample Output
题意:採用大数模板,用二维数组存数据
#include<iostream>
#include<cstdio>
using namespace std;
int a[1005][1005];
int main()
{
int r=0,n,i,j,p,sum;
a[1][1]=1;
a[2][1]=1;
for(i=1;i<1001;i++)
for(j=1;j<1001;j++)
{
sum=a[i+1][j]+a[i][j]+r;//一位一位加
a[i+2][j]=sum%10;
r=sum/10;
}
while(scanf("%d",&n)!=EOF&&n>=3)
{
while(n--)
{
scanf("%d",&p);
for(j=1001;j>=1;j--)
if(a[p][j]) break;//除去前面 0
for(;j>=1;j--)
printf("%d",a[p][j]);
printf("\n");
}
}
return 0;
}
|
原文:http://www.cnblogs.com/wzjhoutai/p/7160078.html