题1:小白爬楼梯(递归设计)
算法分析:f(n) = f(n-1) + f(n-2) + f(n-3)
1 package recursion; 2 3 import java.util.Scanner; 4 5 /** 6 * @author zsh 7 * @company wlgzs 8 * @create 2019-02-18 9:13 9 * @Describe 题1·小白上楼梯(递归设计) 10 * 小白正在上楼梯,楼梯有n阶台阶, 11 * 小白一次可以上1阶、2阶或者3阶, 12 * 实现一个方法,计算小白有多少种走完楼梯的方式 13 */ 14 public class Main4 { 15 16 public static void main(String[] args) { 17 Scanner scanner = new Scanner(System.in); 18 int n = scanner.nextInt(); 19 int res = f(n); 20 System.out.println(res); 21 } 22 23 /** 24 * 递归求上楼梯的次数 25 * @param n n阶台阶 26 * @return 上楼梯的次数 27 * 找重复: 28 * 找变化的量:n 29 * 找出口: n==0 , n == 1 , n== 2 30 */ 31 static int f(int n) { 32 if (n == 0){ 33 return 1; 34 }else if (n == 1){ 35 return 1; 36 }else if (n == 2){ 37 return 2; 38 } 39 return f(n-1)+f(n-2)+f(n-3); 40 } 41 42 }