问题:
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?
注:规定从一级到一级有0种走法。
分析:
(1)公式 F(n) = F(n-1)+F(n-2)。
(2)初始化:因为F(1) = 0,所以F(2) = 1;F(3) = 2。
(3)使用switch实现多重判断
code :
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String args[]) { 5 Scanner in = new Scanner(System.in); 6 int n = in.nextInt(); 7 int m; 8 while(n>0) { 9 m = in.nextInt(); 10 11 switch(m) { 12 case 1: 13 System.out.println(0); 14 break; 15 case 2: 16 System.out.println(1); 17 break; 18 case 3: 19 System.out.println(2); 20 break; 21 default: 22 int[] dp = new int[m+1]; 23 dp[1] = 0; 24 dp[2] = 1; 25 dp[3] = 2; 26 for(int i=4;i<=m;i++) { 27 dp[i] = dp[i-1]+dp[i-2]+1; 28 } 29 System.out.println(dp[m]); 30 } 31 n--; 32 } 33 in.close(); 34 } 35 }