路径几何 JAVA

在一个MxN的方格中,一只蚂蚁从左上角出发,目标是右下角,其前进的方向只有两种:向右或向下,请编程计算共有多少种从左上角到达右下角的不同的路径(走法)。你可以认为这个路径的总数量在无符号整数范围内。

输入样例1:

空格分隔的两个正整数,代表方格的行,列数。

2 3 



结尾无空行

输出样例1:

计算并输出到达右下角的不同的路径总数。 共有三种方案:

1:右,右,下。 2:右,下,右。 3:下,右,右。

3



结尾无空行

输入样例2:

空格分隔的两个正整数,代表方格的行,列数。

3 7



结尾无空行

输出样例2:

计算并输出到达右下角的不同的路径总数。

28



结尾无空行

 

经典动态规划题,也可以用排列组合

代码区://这个代码可以进一步优化

​i = 行,j = 列,s = 总路径
状态转移方程:
s[i][j] = 1 当 i 或 j 为0时
s[i][j] = s[i - 1][j] + s[i][j - 1] 当 i > 0 并且 j > 0时
 1 import java.util.Scanner;
 2 public class test7 {
 3    public static void main(String[] args) {
 4        Scanner scan = new Scanner(System.in);
 5        int n = scan.nextInt();
 6        int m = scan.nextInt();
 7        Tools tool = new Tools();
 8        tool.s(m, n);
 9        scan.close();
10    }
11 }
12 class Tools{
13     public void s(int m,int n) {
14         int[][] dp = new int[m][n];
15     for(int i = 0;i < m;i++) {//代表第i行
16         for(int j = 0;j < n;j++) {//代表第j列
17             if(i == 0 || j == 0 ) dp[i][j] = 1;
18       //因为只能向右走或者向左走,
19       //所以第0行和第0列的每个格都只有一条路线
20             else dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
21       //上方格子和左侧格子的总路线的和即为当前位置的路径量
22         }
23     }
24     System.out.print(dp[m - 1][n - 1]);
25     }
26 }

 

 

posted @ 2021-12-30 19:07  Imepeto  阅读(107)  评论(0)    收藏  举报