hdoj 1715 大菲波数

来源:互联网 发布:如何成为淘宝摄影师 编辑:程序博客网 时间:2024/05/17 07:16

大菲波数(链接)

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)。

#include<cstdio>#include<cstring>using namespace std;const int maxn = 1050;char a[maxn],b[maxn],c[maxn];void ADD(char *str1,char *str2,char *str3){    int i,j,i1,i2,tmp,carry;    int len1,len2;    len1 = (int)strlen(str1);    len2 = (int)strlen(str2);    char ch;    i1 = len1 - 1;    i2 = len2 - 1;    j = carry = 0;    for(; i1>=0&&i2>=0; ++j,--i1,--i2)    {        tmp=str1[i1]-'0'+str2[i2]-'0'+carry;        carry=tmp/10;        str3[j]=tmp%10+'0';    }    while(i1>=0)    {        tmp=str1[i1--]-'0'+carry;        carry=tmp/10;        str3[j++]=tmp%10+'0';    }    while(i2>=0)    {        tmp=str2[i2--]-'0'+carry;        carry=tmp/10;        str3[j++]=tmp%10+'0';    }    if(carry)    {        str3[j++]=carry+'0';    }    str3[j]='\0';    for(i=0,--j;i<j;++i,--j)    {        ch = str3[i];        str3[i] = str3[j];        str3[j] = ch;    }}char FF[1010][1050];int N,x;int main(){    FF[1][0]='1';    FF[2][0]='1';    for(int i=3;i<1001;i++)        ADD(FF[i-1],FF[i-2],FF[i]);    scanf("%d",&N);    while(N--)    {        scanf("%d",&x);        printf("%s\n",FF[x]);    }    return 0;}
原创粉丝点击