1. 程式人生 > >【杭電100題】2070 Fibbonacci Number

【杭電100題】2070 Fibbonacci Number

Problem Description

Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such:

f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)

Your program should be able to handle values of n in the range 0 to 50.

Input

Each test case consists of one integer n in a single line where 0≤n≤50. The input is terminated by -1.

Output

Print out the answer in a single line for each test case.

Hint

Note:you can use 64bit integer: __int64


#include <iostream>
#include <ctype.h>

using namespace std;

int n;

__int64 last_but_one,last;
__int64 cur;

int main()
{
    while(cin>>n&&n>=0)
    {
        if(n==0)
        {
            cout<<'0'<<endl;
        }
        else if(n==1)
        {
            cout<<'1'<<endl;
        }
        else
        {
            last_but_one=0;
            last=1;
            for(int i=2; i<=n; i++)
            {
                cur=last_but_one+last;
                last_but_one=last;
                last=cur;
            }
            cout<<cur<<endl;
        }
    }
    return 0;
}