您的位置:首页 > 其它

HDU1715:大菲波数

2017-02-22 14:53 513 查看
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

5
1
2
3
4
5

 

Sample Output

1
1
2
3
5

 

//纯模板
 

[cpp] view
plain copy

#include<iostream>  

#include<cstring>  

#include<cstdio>  

using namespace std;  

  

string add(string s1,string s2)  

{  

    if(s1.length()<s2.length())  

    {  

        string temp=s1;  

        s1=s2;  

        s2=temp;  

    }  

    for(int i=s1.length()-1,j=s2.length ()-1; i>=0; i--,j--)  

    {  

        s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));  

        if(s1[i]-'0'>=10)  

        {  

            s1[i]=char((s1[i]-'0')%10+'0');  

            if(i)  

                s1[i-1]++;  

            else  

                s1='1'+s1;  

        }  

    }  

    return s1;  

}  

  

string str[1005];  

  

int main()  

{  

    int i,n;  

    str[1] = "1";  

    str[2] = "1";  

    for(i = 3; i<1005; i++)  

    {  

        str[i] = add(str[i-2],str[i-1]);  

        //printf("%s\n",str[i]);  

    }  

    cin >> n;  

    while(n--)  

    {  

        int a;  

        cin >> a;  

        cout << str[a] << endl;  

    }  

  

    return 0;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: