走台阶问题运用递推和斐波那契数列C/C++源码实现
来源:互联网 发布:sql identity属性 编辑:程序博客网 时间:2024/05/21 01:56
<pre name="code" class="cpp">/*题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法。*/#include<iostream>#include<cmath>using namespace std;//计算台阶数函数的原型声明int WalkSteps(int n); int Fibnacci(int n);void main(){int n;while (1){cout<<"请输入需要行走的台阶级数:"<<" ";cin>>n;cout<<"总共的跳法种数: "<<WalkSteps(n)<<endl;cout<<"采用斐波那契数列通项公式所得结果为:"<<Fibnacci(n)<<endl;}}//普通递推算法int WalkSteps(int n){if (n==0||n==1)return 1;elsereturn WalkSteps(n-1)+WalkSteps(n-2);}//斐波那契数列通项公式int Fibnacci(int n){double pTemp, mTemp;pTemp = pow((1.0+sqrt(5.0))/2.0, n+1);mTemp = pow(((1.0-sqrt(5.0))/2.0), n+1);return (sqrt(5.0)/5.0)*(pTemp-mTemp);}
对于斐波那契数列:
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
特别指出:第0项是0,第1项是第一个1。
斐波那契数列通项公式直接计算:F(n)=(√5/5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
使用通项公式进行计算时,我们要充分考虑对应关系,从斐波那契通项公式我们可以看出,当n = 1,n = 2 时,F(1) = F(2) = 1;对应台阶数为0和1的情况,即 f(0) = f(1) = 1 。经过编程验证,没有所谓的误差存在。
实验结果:
0 0
- 走台阶问题运用递推和斐波那契数列C/C++源码实现
- 斐波那契数列-台阶问题
- 菲波那契数列 C 递推方法
- 斐波那契数列C实现
- 走台阶(斐波那契)
- Codeforces Round #382C. Tennis Championship(递推+斐波那契数列)
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- appframework学习--appframework开发常见问题及解决方法(不定期更新)
- android项目,从服务器端返回JSON数据,在android客户端进行显示。
- iPhone上安装同一个app,不会覆盖原有的app版本
- iPhone SDK 包含哪些东西?
- 职场分享:在职场中我们需要哪些工作技巧
- 走台阶问题运用递推和斐波那契数列C/C++源码实现
- UITextField全解
- CSS+HTML基础入门教程
- 路径中 斜杠/和反斜杠\ 的区别
- ALSA-amixer的用法
- Java序列化的机制和原理
- hdu4927 Series 1(大数加减乘除)
- 安装redis及配置php扩展
- 利用perl或者R实现不规则文本的行列转置