// 递归计算斐波那契数 long fibonacci_recursion( int n ) { if( n <= 2 ) return 1; return fibonacci_recursion(n-1) + fibonacci_recursion(n-2); }
int main(){ int N = 45; // 递归消耗的时间 clock_t recursion_start_time = clock(); long result_recursion = fibonacci_recursion(N); clock_t recursion_end_time = clock(); // 迭代消耗的时间 clock_t iteration_start_time = clock(); long result_iteration = fibonacci_iteration(N); clock_t iteration_end_time = clock(); // 输出递归消耗的时间 printf("Result of recursion: %ld \nTime: %fseconds", fibonacci_recursion(N), (double)(recursion_end_time-recursion_start_time)/CLOCKS_PER_SEC ); printf("\n-----------------------\n"); // 输出迭代消耗的时间 printf("Result of iteration: %ld \nTime: %fseconds", fibonacci_iteration(N), (double)(iteration_end_time-iteration_start_time)/CLOCKS_PER_SEC ); return 0; }
//利用递归实现斐波拉契数列 int fibonacci_recursion(int n) { if (n < 2) { return n; } else { return fibonacci_recursion(n - 1) + fibonacci_recursion(n - 2); } }
int recursion::fibonacci_recursion(int i, int& num_rec) { if (i == 0) { return 0; } if (i == 1) { return 1; } return fibonacci_recursion(i - 2, ++num_rec) + fibonacci_recursion(i - 1, ++num_rec); }
int Fibonacci::fibonacci_recursion(int num) { if(num==0 || num==1) { return num; } return fibonacci_recursion(num-1)+fibonacci_recursion(num-2); }