问题:上台阶,一次可以爬一阶或两阶,上完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); } } }