非递归实现fibonacci数列
2011-05-09 21:34
204 查看
下面用两个方法实现fibonacci数列,一个是递归的,一个是非递归的,由于递归需要不断的开辟新的栈,并释放开辟的栈,因而更耗时,但是在理解上却容易些。
#include <iostream> #include <time.h> using namespace std; int recursive_method(int n); int non_recursive_method(int n); int main() { clock_t t3 = clock(); printf("%d\n", non_recursive_method(40)); clock_t t4 = clock(); printf("%f\n", (double)(t4 - t3)/CLOCKS_PER_SEC); clock_t t1 = clock(); printf("%d\n", recursive_method(40)); clock_t t2 = clock(); printf("%f\n", (double)(t2 - t1)/CLOCKS_PER_SEC); return 0; } int recursive_method(int n) { if (n == 1 || n == 2) return 1; else return recursive_method(n - 1) + recursive_method(n - 2); } int non_recursive_method(int n) { int p = 1; int q = 1; for(int i = 2; i < n; i++) { int tmp = p; p = q; q = tmp + q; } return q; }
相关文章推荐
- Fibonacci数列非递归解法 C++实现
- Fibonacci数列的递归与非递归实现
- 递归实现求Fibonacci数列的第n项
- Fibonacci数列 递归实现
- 产生fibonacci数列的第i个数字(递归实现,非递归实现)
- 递归实现Fibonacci数列
- 斐波那契数(JAVA实现)--递归中的Fibonacci数列
- Fibonacci数列的非递归实现
- 迭代与递归(及异同点的简单分析)以及Fibonacci数列的两种实现
- 用递归实现Fibonacci数列
- Fibonacci数列的递归与非递归实现
- Go语言实现Fibonacci数列的两个算法(使用递归和不使用递归)
- 递归实现 三角数列 Fibonacci数列 汉诺塔
- fibonacci数列的递归C++多种实现
- fibonacci数列的递归与非递归实现
- Fibonacci数列的第n项-递归和循环实现
- Fibonacci数列的递归简单实现
- python实现递归遍历目录(linux下测试通过)
- c++实现二叉树(递归)
- python实现二叉树非递归前中后序遍历