台阶算法

问题:上台阶,一次可以爬一阶或两阶,上完n级台阶有多少种方法呢?

假设n=1,1种方法爬完      爬一级

假设n=2,2种方法爬完,   一次爬一级   1   1; 一次爬两级  2

在这个的基础上假设有n(n>2)级阶梯,若爬一级则剩下fun(n-1)种爬发,若爬两级剩下fun(n-2)种爬发。

按照这个思想直接上代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("请输入台阶数:");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println("有"+fun(n)+"种走法!");
    }

    private static int fun(int n) {
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            return 2;
        } else {
            return fun(n - 1) + fun(n - 2);
        }
    }

}
原文地址:https://www.cnblogs.com/xiaoxueyong/p/5292470.html