首页 > 其他 > 详细

大斐波数

时间:2015-01-17 15:06:31      阅读:475      评论:0      收藏:0      [点我收藏+]

Fibonacci数列,定义如下: 
f(1)=f(2)=1 
f(n)=f(n-1)+f(n-2) n>=3。 
计算第n项Fibonacci数值。 

输入

输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。

输出

输出为N行,每行为对应的f(Pi)。

样例输入

5 1 2 3 4 5

样例输出

1 1 2 3 5

提示

 

此题需要用大数处理

 
 

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;

#define maxn 1005

int fib [maxn][maxn] = {0};

void Add(int a[], int b[], int c[])
{
for(int i = 0; i < maxn; i++)
{
a[i] += b[i] + c[i];
a[i+1] += a[i]/10;
a[i] %= 10;
}
}

void PutNum(int a[])
{
int len;
for(int i = maxn-1; i >= 0; i--)
{
if(a[i])
{
len = i;
break;
}
}

for(int i = len; i >= 0; i--)
cout << a[i];

cout << endl;
}
int main()
{
fib[1][0] = fib[2][0] = 1;

for(int i = 3; i <= 1000; i++)
{
Add(fib[i], fib[i-1], fib[i-2]);
}
int T, n;

cin >> T;

while(T--)
{
cin >> n;

PutNum(fib[n]);
}

return 0;
}

大斐波数

原文:http://www.cnblogs.com/Tinamei/p/4230408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!