跳台阶问题-简单版

题目

有n阶台阶,每次跳一阶或者两阶,一共有多少种跳法。

解答

乍一看,毫无头绪,仔细一想好像可以这样,一阶的话,一种跳法,两阶的话是两种跳法,三阶是一阶和两阶组合而成的,跳法也是他们相加自然。在第三阶有两种上去的方法,从第一阶,从第二阶,发现第三阶的跳法恰好是一阶跳法和二阶跳法的和,而n阶也是由一阶和二阶组合而来的,忽然发现这不就是斐波拉契数列嘛。

源代码

package com.bilibili;



/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {

    public static void main(String[] args) {
        System.out.println(jump(5));
    }

    public static int jump(int n){
        //零阶也考虑了,为一种方案

        int[] arr = new int[n + 1];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2;i <= n;i++){
            arr[i] = arr[i - 1] + arr[i -2];
        }
        return arr[n];
    }
}

你可能感兴趣的:(算法,java,数据结构,算法)