您的位置:首页 > 其它

斐波那契数列(大数)

2015-07-25 11:46 274 查看

1216: 斐波那契数列

时间限制: 1 Sec 内存限制: 128 MB

点我

题目描述

Fibonacci数列,定义如下:

f(1)=f(2)=1

f(n)=f(n-1)+f(n-2) n>=3

计算第n项Fibonacci数值。

输入

输入第一行为一个整数n(1<=n<=10000)。

输出

输出对应的f(n)。

样例输入

1
2
3
4

5

样例输出

1
1
2
3
5
数组中每个元素存储3位,存储一位则内存超限,还有要注意每一个元素中前导为0时要把0输出,最高位则不需要,被这个给坑了

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
#define len 100000000
int a[10001][1000];
int main()
{
int n,c,i,j;
memset(a,0,sizeof(a));
a[1][0]=a[2][0]=1;
for(i=3;i<10001;i++)
{
c=0;
for(j=0;j<=999;j++)
{
a[i][j]=(a[i-2][j]+a[i-1][j]+c)%len;
c=(a[i-2][j]+a[i-1][j]+c)/len;
}
}
while(cin>>n)
{
for(i=999;i>=0;i--)
if(a
[i]!=0)
break;
cout<<a
[i];
for(i--;i>=0;i--)
{
printf("%08d",a
[i]);
}
cout<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: