一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
递归,由上一步到这一步青蛙跳了一级或跳了两级,当前台阶数为n,那跳n级台阶的方法数就是问跳n-1和跳n-2级楼梯方法数相加。由此可看出,这是一个 斐波那契数列 。 结束条件就是当n=1时,只有一种方法(跳一级);n=0时,0种方法;当n=2时,有两种方法(一次跳一级,跳两次;一次直接跳两级)
class Solution { public: int jumpFloor(int number) { if (number == 0){ return 0; } if (number == 1){ return 1; } if (number == 2){ return 2; } return jumpFloor(number - 1) + jumpFloor(number - 2); } };转载请注明出处
:
http://www.zgljl2012.com/2017/01/07/jian-zhi-offer-tiao-tai-jie/