算法訓練題
問題:
有一個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();
}
}
}
算法訓練題