概述
1114: 高精度加法之二
Time Limit: 1 Sec Memory Limit: 128 MBDescription
菲波拉契数列大家都知道了。
f(1) = 1, f(2) = 1, f(n > 2) = f(n - 1) + f(n - 2)
现在希望你求这个数列第N列
f(1) = 1, f(2) = 1, f(n > 2) = f(n - 1) + f(n - 2)
现在希望你求这个数列第N列
Input
一个数N,N<=5000
Output
如题
Sample Input
100
Sample Output
354224848179261915075
HINT
Source
#include<iostream>
void Add(int *a,int *b,int *c) //十进制加法
{
for(int i=9999;i>=0;i--)
{
c[i]+=a[i]+b[i];
if(c[i]>=10)
{c[i-1]++;c[i]-=10;}
}
}
void Cpy_num(int *a,int *b) //数组复制
{
for(int i=0;i<10000;i++)
{a[i]=b[i];}
}
void Fibnocci(int n,int *F)
{
int f1[10000]={0},f2[10000]={0},t[10000]={0};
f1[9999]=f2[9999]=1;
if(n<=2)
{F[9999]=1;return;}
for(int i=3;i<=n;i++)
{
Cpy_num(F,t); //仿照普通计算即可
Add(f1,f2,F);
Cpy_num(f1,f2);
Cpy_num(f2,F);
}
}
using namespace std;
main()
{
int F[10000]={0};
int i,j,n;
scanf("%d",&n);
Fibnocci(n,F);
for(j=0;j<10000;j++) //去前导零
{
if(F[j]!=0)
{break;}
}
for(i=j;i<10000;i++)
{printf("%d",F[i]);}
}
最后
以上就是高挑草莓为你收集整理的【HUSTOJ】1114: 高精度加法之二的全部内容,希望文章能够帮你解决【HUSTOJ】1114: 高精度加法之二所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复