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.
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.
Sample Input
3 4 5 -1
Sample Output
2 3 5/* 递归超时 #include<stdio.h> int f(int n) { if(n==0) return 0; if(n==1) return 1; return f(n-1)+f(n-2); } int main() { int n; while(~scanf("%d",&n)) { printf("%lld\n",f(n)); } return 0; } */ // 普通方法 #include<stdio.h> int main() { int n; while(scanf("%d",&n),n!=-1) { __int64 a=0; //64位赋值 __int64 b=1; __int64 sum=0; if(n==0) { printf("0\n");continue;} if(n==1) { printf("1\n");continue;} for(int i=2;i<=n;i++) { sum=a+b; a=b; b=sum; } printf("%I64d\n",sum); //64位输出 } return 0; }