大菲波数-HDU 1715-大数问题

来源:互联网 发布:淘宝上卖的冷光美白仪 编辑:程序博客网 时间:2024/06/05 08:00

大菲波数


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

512345

 


Sample Output

11235

点击打开链接

#include<bits/stdc++.h>///HDU 1715 大菲波数using namespace std;struct Pi{    int tu[1005]={0};    int l=0;}pi[1005];void he(Pi &s,Pi &a,Pi &b){    int k;    for(int i=0;;i++)    {        k=a.tu[i]+b.tu[i]+s.tu[i];        if(k==0&&(a.tu[i+1]+b.tu[i+1]+s.tu[i+1])==0)        {            break;        }        s.l++;        if(k>=10)        {            s.tu[i]=k%10;            s.tu[i+1]=s.tu[i+1]+k/10;        }        else        {            s.tu[i]=k;        }    }}void add(){    for(int i=3;i<=1001;i++)    {        he(pi[i],pi[i-1],pi[i-2]);    }}int main(){    pi[1].tu[0]=1,pi[2].tu[0]=1;    pi[1].l=1;pi[2].l=1;    add();    int n,q,k;    scanf("%d",&n);    while(n--)    {        scanf("%d",&q);        for(int i=pi[q].l-1;i>=0;i--)        {            printf("%d",pi[q].tu[i]);        }        printf("\n");    }    return 0;}



原创粉丝点击