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

xiaoxiao2021-02-27  335

题目描述:

一只青蛙一次可以跳上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位 } };
转载请注明原文地址: https://www.6miu.com/read-3770.html

最新回复(0)