算法训练题
Posted rainbowxch
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法训练题相关的知识,希望对你有一定的参考价值。
问题:
有一个X*Y的网络,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。
给定两个正整数int x, int y ,请返回机器人的走法数目。保证x+y小于等于12.
测试样例:
2,2
返回:2
代码:
import java.util.Scanner;
public class newWeb {
static int t = 0;
public static void main(String[] args) {
int x=new Scanner(System.in).nextInt();
int y=new Scanner(System.in).nextInt();
int[][] a = new int[x][y];
int m = 0;
int n = 0;
a[m][n] = 1;
xun(a,m,n,x,y);
System.out.println(t);
}
private static void xun(int[][] a, int m, int n, int x, int y) {
if((m+1)<x||(n+1)<y){
if((n+1)<y&&a[m][n+1]!=1){
a[m][n+1] = 1;
xun(a,m,n+1,x,y);
a[m][n+1] = 0;
}
if ((m+1)<x&&a[m+1][n] != 1) {
a[m+1][n] = 1;
xun(a,m+1,n,x,y);
a[m+1][n] = 0;
}
}else{
t++;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
System.out.println();
}
}
}
以上是关于算法训练题的主要内容,如果未能解决你的问题,请参考以下文章