华为OD机试 2024E卷题库疯狂收录中,刷题 <a rel="nofollow" href="https://blog.csdn.net/qq_40374604/category_12822407.html" style="color: red;">点这里</a>。
实战项目访问:http://javapub.net.cn/
专栏导读
本专栏收录于 《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》 。
刷的越多,抽中的概率越大,私信javapub,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。
走方格的方案数
请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。 注:沿棋盘格之间的边缘线行走
数据范围:1≤n,m≤8

输入描述:
输入两个正整数n和m,用空格隔开。
输出描述:
输出一行结果
示例1
输入
2 2
输出
6
Java 编程
package cn.net.javapub.demo2.demo;
/**
* @author: shiyuwang
* @url: http://javapub.net.cn
*/
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = bReader.readLine()) != null) {
int n = Integer.valueOf(line.substring(0, line.indexOf(" ")));
int m = Integer.valueOf(line.substring(line.indexOf(" ") + 1));
System.out.println(getCount(n, m));
}
}
public static int getCount(int n, int m) {
int[][] dp = new int[n + 1][m + 1];
for (int i = 0; i < n + 1; i++) {
for (int j = 0; j < m + 1; j++) {
if (i == 0 || j == 0) {
// 边上的每一个点的可能性都是1,因为走到边上,就只能顺着边往下走了,可能性只能是1
dp[i][j] = 1;
} else {
// 往后每一个点,都是后面两个点的可能性之和,因为它可以选择任意一个点来走,可能性就是下两个点的可能性相加
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
}
}
}
// 最终加到最后一个点,可能性就是所有的路线数量
return dp[n][m];
}
}
展示效果:

🏆下一篇: 华为OD机试 - 24点运算 (Java 2024 E卷 100分) 🏆本文收录于, 搬砖工逆袭Java架构师
刷的越多,抽中的概率越大,私信javapub,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。
优质合集推荐
《突击面试》Java面试题合集
《面试1v1》
《编程工作总结》

















