剑指offer:跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:一开始看到题,没思路,不知道为什么想到了二叉树.... 看了下题解是斐波那契数列的引申,很妙,从尾部分析。
只能跳一步或者两步,则fn=fn-1 + fn-2 一直递归,直到开始条件012....fn.
代码:
class Solution { public: int jumpFloor(int number) { //tree if(number <= 1) return number; if(number == 2) return 2; return jumpFloor(number - 1) + jumpFloor(number - 2); } };