/*************************************************************
* file:fibonacci.c
* brief:fibonacci数列的递归和循环算法
* yejing@2015.2.3 1.0 creat
*************************************************************/
#include <stdlib.h>
#include <stdio.h>
long long int fibonacci_recursive(unsigned int n){
if(n <= 1)
return n;
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
long long int fibonacci_loop(unsigned int n){
if(n <= 1)
return n;
long long int tmp1 = 0;
long long int tmp2 = 1;
long long int ret;
unsigned int i;
for(i = 2; i <= n; ++i){
ret = tmp1 + tmp2;
tmp1 = tmp2;
tmp2 = ret;
}
return ret;
}
int main(int argc, char* argv[]){
unsigned int n;
printf("please input the fibonacci index: ");
scanf("%d", &n);
getchar();
printf("fibonacci_recursive:%lld \n", fibonacci_recursive(n));
printf("fibonacci_loop:%lld \n", fibonacci_loop(n));
return 1;
}
fibonacci数列的递归和非递归解法
最新推荐文章于 2024-01-25 12:13:59 发布