首页 > 其他 > 详细

动态规划——走阶梯问题

时间:2020-04-29 11:35:58      阅读:60      评论:0      收藏:0      [点我收藏+]

问题:

有一楼梯共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 }

 

动态规划——走阶梯问题

原文:https://www.cnblogs.com/dream-flying/p/12800804.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!