剑指Offer——(9)变态跳台阶

来源:互联网 发布:粉丝大师下载软件 编辑:程序博客网 时间:2024/05/17 23:24

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

实现如下:

//有n级台阶//若跳1级则剩下n-1级,跳法f(n-1)//若跳2级则剩下n-2级,跳法f(n-2)//若跳3级则剩下n-3级,跳法f(n-3)//若跳n-级则剩下1级,跳法f(n-(n-1)),即剩下一个台阶//若跳n级则剩下0级,跳法f(0),即为1种方法//f(n) = 1 + f(n-1) + f(n-2) + ... +f (1)//f(1) = 1//f(2) = 1 + f(1) = 2;//f(3) = 1 + f(2) + f(1) = 4...//以此类推//f(n) = 2^(n-1)class Solution{public:    int jumpFloorII(int number)    {        return 1 << --number;//左移n-1位    }};
0 0
原创粉丝点击