斐波那契递归消除重复性
2017-03-16 13:20
232 查看
#include <iostream> using namespace std; void fibo_loop(int num); int fibo_recurisv(int num); int main() { cout<<fibo_recurisv(44); //fibo(0,1,44); return 0; } //递归方法且消除了重复性 static int temp = 1; int fibo_recurisv(int num) { if (num == 1) { return 1; } else { int res = fibo_recurisv(--num); int x = res+temp; temp = res; cout<<x<<" "; return x; } } //或者 void fibo(int a,int b,int num) { if (num >0) { --num; cout<<b<<" "; fibo(b, b+a,num); } } //普通递归方法 int fibo_rec(int num) { if (num < 1) { return 1; } return fibo_rec(num-1)+fibo_rec(num-2); } //循环方法 void fibo_loop(int num) { int i=1; int j=1; int k=0; cout<<i<<" "<<j<<" "; for(int n=0; k<num; ++n) { k=i+j; i=j; j=k; cout<<k<<" "; } }
相关文章推荐
- 斐波那契数列迭代和递归对比
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
- 算法:五步教你消除递归
- 递推递归——K - 们--加强斐波那契
- 斐波那契数列的递归和非递归实现
- Java递归算法——三角数字(消除递归)
- 斐波那契数列——递归实现
- 消除左递归文法
- 递归方式、迭代方式实现的斐波那契数列。
- 两种归并排序算法的实现:二路归并排序和基本归并排序(虚拟消除递归的二路归并排序)
- 递归-斐波那契(母牛生小牛问题)
- 递推、递归与迭代的本质,以及,辗转相除与斐波那契的惊人相似性
- 消除左递归文法
- 消除文法左递归-编译原理
- 字符消除(外内2层判断+递归)
- 斐波那契数列的递归、递推算法比较
- 递归递推练习―K―强化斐波那契
- 通过求斐波那契数理解递归的恐怖开销!
- 尾递归结构的消除
- [数据结构]图的DFS用栈消除递归的C语言简单实现