其他分享
首页 > 其他分享> > JZ09 剑指offer 变态跳台阶

JZ09 剑指offer 变态跳台阶

作者:互联网

第9题 变态跳台阶

题目描述

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

class Solution {
public:
    int jumpFloorII(int n) {
        if (n == 0 || n == 1) return 1;
        return pow(2, n-1);
    }
};

对于n级台阶,最后一步可能的跳的台阶数为1,2,……,n,所以前一阶台阶可能为n-1,n-2,……,0,所以有:
F [ n ] = F [ n − 1 ] + F [ n − 2 ] + . . . + F [ 0 ] F[n]=F[n-1]+F[n-2]+...+F[0] F[n]=F[n−1]+F[n−2]+...+F[0]
而对于n-1级台阶:
F [ n − 1 ] = F [ n − 2 ] + F [ n − 3 ] + . . . + F [ 0 ] F[n-1]=F[n-2]+F[n-3]+...+F[0] F[n−1]=F[n−2]+F[n−3]+...+F[0]
所以:
F [ n ] = 2 F [ n − 1 ] F[n]=2F[n-1] F[n]=2F[n−1]
以此类推:
F [ n ] = 2 n − 1 F [ 1 ] = 2 n − 1 F[n]=2^{n-1}F[1] =2^{n-1} F[n]=2n−1F[1]=2n−1

标签:台阶,offer,int,JZ09,变态,跳上,2F,return,+...+
来源: https://blog.csdn.net/KazeHelloWorld/article/details/111899078