杭电ACM 2070:Fibbonacci Number

原创作品 转载请注明出http://blog.csdn.net/always2015/article/details/46878551
杭电ACM 2070:Fibbonacci Number_第1张图片
这道题是斐波那契数列,还是简单的数学题,但是该题当我们是用递归进行写代码时候,就会出现超时的错误,所以在这里我们是不能使用递归的,再回头看题目,这里要求n的大小为小于等于50,所以我们直接可以使用一个数组a大小为51就可以先把斐波那契数列计算存储起来,这样就会很简单。而且当越大,整形结果用32位就无法表示,所以在这里可以用64位,整形64位可以表示为__int64,其实相当于long long。这就是其中难点。整个代码很简单。我的AC代码如下:

#include 

using namespace std;

int main()
{
    int n;
    __int64 a[51]={0,1};

    for(int i=2;i<51;i++)
    {
        a[i]=a[i-1]+a[i-2];
    }

    while(1)
    {
        cin>>n;
        if(n==-1||n<0||n>50)break;

        cout << a[n]<< endl;
    }

    return 0;
}

你可能感兴趣的:(【ACM刷题】)