剑指offer(C++)——跳台阶
来源:互联网 发布:身份证 差别 知乎 编辑:程序博客网 时间:2024/06/10 19:09
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
首先我们考虑最简单的情况。如果只有1级台阶,显然只有一种跳法。如果只有2级台阶,则有两种:一种是一次跳1级,一种是一次跳2级
接着考虑一般情况,对于n级台阶,我们记跳法总数为f(n)。当n>2时,第一次跳有两种选择,一种是跳1级台阶,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种是跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。则总的跳法数目为f(n)=f(n-1)+f(n-2)
分析到此,可以看出这实际上就是一个斐波那契数列。
代码如下:
class Solution {public:int jumpFloor(int number) {if (number == 1)return 1;if (number == 2)return 2;long long Floorone = 1;long long Floortwo = 2;long long FloorN = 0;for (int i = 3; i <= number;i++){FloorN = Floorone + Floortwo;Floorone = Floortwo;Floortwo = FloorN;}return FloorN;}};
关于斐波那契数列可参考:http://blog.csdn.net/yf_li123/article/details/70655146
1 0
- 剑指offer(C++)——变态跳台阶
- 剑指offer(C++)——跳台阶
- 剑指offer—跳台阶
- 《剑指Offer——跳台阶》
- 《剑指offer》——跳台阶
- 《剑指offer》——变态跳台阶
- 剑指offer——跳台阶
- 剑指offer——变态跳台阶
- 剑指Offer—— 跳台阶
- 剑指offer——变态跳台阶
- 剑指offer——变态跳台阶
- 剑指offer——8.跳台阶
- 剑指Offer——跳台阶
- 剑指offer——跳台阶
- 剑指offer——跳台阶
- 剑指offer——跳台阶
- 剑指offer—变态跳台阶
- 《剑指offer》—8、跳台阶
- 【译】Vue框架引入JS库的正确姿势
- error: warning: Stopped in a context claiming to capture an Objective-C object pointer,
- Earth GMT Materials
- (ssl1597)P1880 石子合并问题
- YDT-Routesim学习(四)
- 剑指offer(C++)——跳台阶
- Cookies的封装
- bzoj 1085: [SCOI2005]骑士精神
- Ubuntu 16.04多启动及grub配置
- 常见的电平标准 USB/TTL/RS232/RS485
- jdk spring tomcat 版本冲突
- GitHub版本控制使用(命令行实际操作图解Git使用方法)
- i2c信号的ACK与NACK
- 关于DTW 动态时间规整算法