青蛙跳台阶
来源:互联网 发布:软件打包有哪些 编辑:程序博客网 时间:2024/04/29 23:47
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?
因为一次只能跳一个或两个台阶。所以,
n <= 0,无法跳,f(n) = 0;
n = 1,只能跳一个台阶。f(1) = 1;
n = 2, 两次跳一个台阶,或一次跳两个台阶。f(2) = 2;
n = 3, 只能从第2个台阶或第一个台阶跳上来。判断f(2)和f(1)即可获得f(3)。f(3) = f(2)+f(1);
n = ...,对于第n个台阶来说,只能从n-1或者n-2的台阶跳上来.F(n) = F(n-1) + F(n-2) (斐波拉契数序列)
综上:此题可用两种解法:
1,使用递归;
2,使用迭代。
1,递归方法:
优点:代码简洁明了,易于理解。
缺点:系统开销稍大,效率较低,不建议使用。
int jumpFloor(int number) {if (0 >= number)return 0;if ((1 == number) || (2 == number))return number;return (jumpFloor(number-1) + jumpFloor(number-2));}
2,使用迭代方法:
优点:运行效率高。
int jumpFloor(int number){int j1 = 1;int j2 = 2;int sum = 0;if (number <= 0)return 0;if ((1 == number) || (2 == number))return number;while (3 <= number){sum = j1 + j2;j1 = j2;j2 = sum;number--;}return sum;}
2 0
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶2
- 青蛙跳台阶
- 青蛙跳台阶问题
- 青蛙跳台阶
- 青蛙跳台阶
- 青蛙跳台阶问题
- 青蛙跳台阶
- 青蛙跳台阶
- 青蛙跳台阶
- 移动GPU三种主流架构优缺点浅析
- 扩展欧几里得算法
- cmake安装mysql出错 ---CMake Error: Could not find CMAKE_ROOT !!! CMake has most likely not been installe
- poj 3087 广度搜索 + map用法
- RunLoop入门 看我就够了
- 青蛙跳台阶
- 机房收费系统——可行性研究报告
- POJ2192(Zipper)
- 跟小博老师一起学Servlet ——Servlet之监听器
- Qt for IOS:build from source
- segue跳转
- CF
- 10.基本技能
- maven+struts2