import java.util.Scanner; public class Main { static int a[][] = new int[10][10]; static int n; static int m; // 优先向右, 向下, 向左,向上 static void dfs(int i, int j, int num) { // 二维数组单元赋值 a[i][j] = num; if ( j + 1 < m && a[i][j + 1] == 0) dfs(i, j + 1, num + 1); if ( i + 1 < n && a[i + 1][j] == 0) dfs(i + 1, j, num + 1); if (j - 1 >= 0 && a[i][j - 1] == 0) dfs(i, j - 1, num + 1); if (i - 1 >= 0 && a[i - 1][j] == 0) dfs(i - 1, j, num + 1); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); int[][] b=new int[n][m]; a=b; dfs(0, 0, 1); for (int i = 0; i < n; i++) { for (int j = 0; j <m; j++) { System.out.printf("%3d", a[i][j]); } System.out.println(); } } } /************************************************************** Problem: 1586 User: admin Language: Java Result: Accepted Time:3754 ms Memory:40552 kb ****************************************************************/