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.
Sample Input
3 4 5 -1
Sample Output
2 3 5 you can use 64bit integer: __int64
代码如下:
#include<stdio.h>
long long fib(int n){
long long a=0,b=1,temp=0; //使用long long返回值的函数
if(n<=1){
return n;
}
for(int i=2;i<=n;i++){
temp = a;
a = b; //使用滚动数组的方式节省空间
b = b+temp;
}
return b;
}
int main(){
int n;
// long long a[51]={0,1,0}; //long long型的数组输不出,vc中可以用_64int
// for(int i=2;i<=n;i++){
// a[i] = a[i-1]+a[i-2];
// }
while(~scanf("%d",&n)){
if(n<=-1){
break;
}
printf("%lld\n",fib(n));
}
return 0;
}