跳台阶扩展问题(简单,贪心)

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
示例1
输入
3
返回值
4
f[n]=f[0]+f[1]+f[2]+…+f[n-1](f[0]=1)
可发现 1,2,4,8,16,32(n=1,2,3,4,5,6)即2^(n-1)

class Solution {
    
    
public:
    int jumpFloorII(int number) {
    
    
        long long a=2,b=number-1,c=1;
        while(b)
        {
    
    
            if(b%2) c*=a;
            a*=a;b/=2;
        }
        return c;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_43540515/article/details/114292751