5.剑指Offer之变态跳台阶

    技术2025-09-23  39

    目录

    1.题目描述:2.解题思路:3.编程实现(Java):

    1.题目描述:

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

    2.解题思路:

      默认初试条件为:f(0)=0,f(1)=1;当有两级台阶时,f(2)=f(2-2)+f(2-1);   由此我们可以推理为,当有n级台阶时,f(n)=f(n-1)+f(n-2)+···+f(n-n)=f(0)+f(1)+···+f(n-1);同理当n=n-1时,f(n-1)=f(0)+f(1)+···+f(n-2),然后两边加f(n-1),得到:f(n)=2*f(n-1)。这时一个递推公式,同样为了效率问题,用循环可以实现。

    3.编程实现(Java):

    public class JumpFloor_5 { public static void main(String[] args) { int n = 3; System.out.println("跳台阶种类有:" + JumpFloorII(n) + "种"); } public static int JumpFloorII(int target) { if (target == 0) { return 0; } if (target == 1) { return 1; } int res = 1; if (target >= 2) { for (int i = 2; i <= target; i++) { res = res * 2; } } return res; } }
    Processed: 0.010, SQL: 10