斐波那契数列 递归 尾递归 递推 C++实现
2015-01-06 10:53
176 查看
==================================声明==================================
本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明)。
本文不定期修改完善,为保证内容正确,建议移步原文处阅读。
本文链接:/article/5266549.html
======================================================================
闲来不想做事,刷了个网页,看到乱七八糟的东西就不自觉的扩展下,这坏毛病改不了了,又浪费了好多刷贴吧的时间。
======================================================================
随手写了个小代码,感觉写起来很简单,但是对于退出条件是“1”还是“2”,是“<=”还是“<”,却是比较蛋疼的。
人老了就不愿意多动脑,自己推导就算了吧,我下面的代码靠编译调试确定了下,没有问题。
估计哪次让我现场在纸上写一个,就抓虾了。
======================================================================
要理论的话,请自行翻阅《数据结构与算法分析 c语言描述》和《算法导论》,我就贴个代码,请勿吐槽。
======================================================================
递归
尾递归
递推
本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明)。
本文不定期修改完善,为保证内容正确,建议移步原文处阅读。
本文链接:/article/5266549.html
======================================================================
闲来不想做事,刷了个网页,看到乱七八糟的东西就不自觉的扩展下,这坏毛病改不了了,又浪费了好多刷贴吧的时间。
======================================================================
随手写了个小代码,感觉写起来很简单,但是对于退出条件是“1”还是“2”,是“<=”还是“<”,却是比较蛋疼的。
人老了就不愿意多动脑,自己推导就算了吧,我下面的代码靠编译调试确定了下,没有问题。
估计哪次让我现场在纸上写一个,就抓虾了。
======================================================================
要理论的话,请自行翻阅《数据结构与算法分析 c语言描述》和《算法导论》,我就贴个代码,请勿吐槽。
======================================================================
递归
#include <Windows.h> #include <iostream> using namespace std; LONG Fibonacci(LONG lN) { if (lN<2) { return lN; } return Fibonacci(lN-1)+Fibonacci(lN-2); } int main() { LONG lS=Fibonacci(40); return 0; }
尾递归
#include <Windows.h> #include <iostream> using namespace std; LONG Fibonacci(LONG lN,LONG lA=1,LONG lB=1) { if (lN==2||lN==1) { return lB; } return Fibonacci(lN-1,lB,lA+lB); } int main() { LONG lS=Fibonacci(40); return 0; }
递推
#include <Windows.h> #include <iostream> using namespace std; LONG Fibonacci(LONG lN) { LONG lS=1; LONG lA=1; LONG lB=1; for (LONG lCount=3;lCount<=lN;lCount++) { lS=lA+lB; lA=lB; lB=lS; } return lS; } int main() { LONG lS=Fibonacci(40); return 0; }
相关文章推荐
- 【Java】斐波那契数列(Fibonacci Sequence、兔子数列)的3种计算方法(递归实现、递归值缓存实现、循环实现、尾递归实现)
- C语言 递推与递归 C/C++经典程序训练2---斐波那契数列
- 实现斐波那契数列的递归、非递归及尾递归。
- 《离散数学》用C++实现第二类Stirling数的递归与(非递归)递推的方法 ,并且在实现了s(n-k)=S(n-1,k-1)+k*S(n-1,k)用递归、非递归方式之后,比教两个实验的调试速度、耗时
- 关于递推与递归的斐波那契数列实现
- C++:函数的递归调用--实现斐波那契数列
- 详解python使用递归、尾递归、循环三种方式实现斐波那契数列
- 关于斐波那契数列的递推与递归实现
- C++实现递归实现数字的组合
- C++实现二叉树 前序遍历, 后序遍历, 中序遍历, 层序遍历(不用递归)
- 用递归实现斐波那契数列(Fibonacci Sequence )的函数
- 汉诺塔C++版的递归实现。。。。
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列 递归与非递归实现
- 汉诺塔问题C++的递归实现 [
- C++全排列递归实现
- C/C++中关于递归的实现细节的总结
- 二叉树的遍历(C++非递归实现)
- .net递归实现:斐波那契数列
- 二叉树的递归与非递归算法(前中后序遍历,C++实现)