《剑指offer》第9题——疯狂跳台阶

254 阅读1分钟

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

分析: n阶台阶,第一步有n种跳法:跳1级,...,跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) f(n)=f(n-1)+f(n-2)+...+f(1) f(n-1)=f(n-2)+f(n-3)+...+f(1) 所以f(n)=2*f(n-1)

Java

package nowcoder;

public class S9_JumpFloorII {
    public int jumpFloorII(int number){
        if (number <= 0)
            return -1;
        else if (number == 1)
            return 1;
        else
            return 2*jumpFloorII(n-1);
    }
    public static void main(String[] args){
        S9_JumpFloorII s9 = new S9_JumpFloorII();
        System.out.print(s9.jumpFloorII(4));
    }
}

Python

class JumpFloorII:
    def jumpFloorII(self, number):
        if number <= 0:
            return -1
        elif number==1:
            return 1
        else:
            return 2*self.jumpFloorII(number-1)
if __name__ == '__main__':
    test = JumpFloorII()
    print(test.jumpFloorII(4))