Java二维数组语法包装边框



我正在用Java创建一个二维数组,它从用户那里读取一个数字,并生成一个这样大小的网格。为了开始这个数组,我想在最上面一行的中间放置一个1。我们将称之为K。放置K后,我想将K+1放置在右侧并向上包裹边界。但是,如果右侧和上方的位置已经填充,或者位于右上角,则必须直接向下移动到该位置。以下是遵循这些步骤的7x7网格示例。

30 39 48 1 10 19 28

38 47 7 9 18 27 29

46 6 8 17 26 35 37

5 14 16 25 34 36 45

13 15 24 33 42 44 4

21 23 32 41 43 3 12

22 31 40 49 2 11 20

我尝试了几种不同的方法,但都无法找到正确的解决方案。我有一种感觉,divs和mods在某种程度上被用于此,但我无法理解。如果有人想要一个好的挑战,这就是它哈哈!

我已经根据您的规范编写了代码,并展示了流程中每个点的网格外观。结果并不是你所期望的结果。。。因此,要么你没有正确描述规则,要么你得到了";预期输出";写错了。

这是我的代码:

import java.util.Scanner;
import java.text.DecimalFormat; 
class Main {

public static void main(String[] args) {   
Scanner sc = new Scanner(System.in);
System.out.print("Size of grid? ");
int size = sc.nextInt();
if (size > 0) {
int[][] grid = new int[size][size];  
int max = (int)Math.pow(size, 2);
int length = Integer.toString(max).length();      
int col = size / 2;
int row = 0;
grid[row][col]=1;
displayGrid(grid, length, row, col);
for (int i=2; i<=max; i++) {
int newCol = (col+1) == size ? 0 : (col+1); // to the right, wrapping
int newRow = (row-1) >= 0 ? (row-1) : size-1; // up, wrapping
// if the new position is already taken or is the top right corner
if (grid[newRow][newCol]!=0 || (newRow==0 && newCol==(size-1))) {
// then move straight down, wrapping, instead
newRow = (row+1) < size ? (row+1) : 0;
newCol = col;
}
// put the current number in its spot and update row, col
grid[newRow][newCol]=i;  
row = newRow;
col = newCol;
displayGrid(grid, length, row, col);
}
}    
}
public static void displayGrid(int[][] grid, int padLength, int curRow, int curCol) {
String format = "";
for(int i=0; i<padLength; i++) {
format = format + "0";
}
DecimalFormat df = new DecimalFormat(format);
for(int r=0; r<grid.length; r++) {
for(int c=0; c<grid[r].length; c++) {
System.out.print(df.format(grid[r][c]));
System.out.print(r==curRow && c==curCol ? "*" : " ");
}
System.out.println();
}
System.out.println();
}

}

结果输出:星号*在刚刚放置的数字的右边!

Size of grid? 7
00 00 00 01*00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 01 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 02*00 00 
00 00 00 01 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 03*00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 04*
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 00 00 00 00 00 
00 00 00 00 00 00 00 
05*00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 00 00 00 00 00 
00 06*00 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 07*00 00 00 00 
00 06 00 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 07 00 00 00 00 
00 06 08*00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 00 00 00 
00 00 07 09*00 00 00 
00 06 08 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 10*00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 00 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 00 
00 00 00 00 02 11*00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 00 00 00 00 00 00 
00 00 00 00 00 00 04 
00 00 00 00 00 03 12*
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 00 00 00 00 00 00 
13*00 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 14*00 00 00 00 00 
13 00 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 14 00 00 00 00 00 
13 15*00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 00 00 00 00 
05 14 16*00 00 00 00 
13 15 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 00 00 00 
00 06 08 17*00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 00 00 
00 00 07 09 18*00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 19*00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 00 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
00 00 00 00 00 03 12 
00 00 00 00 02 11 20*
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
21*00 00 00 00 03 12 
00 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
21 00 00 00 00 03 12 
22*00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 00 00 00 00 04 
21 23*00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 00 00 00 00 
13 15 24*00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 00 00 00 
05 14 16 25*00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 00 00 
00 06 08 17 26*00 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 27*00 
00 06 08 17 26 00 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 27 00 
00 06 08 17 26 28*00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
00 00 00 01 10 19 00 
00 00 07 09 18 27 29*
00 06 08 17 26 28 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
30*00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 00 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 00 00 00 03 12 
22 31*00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 00 00 00 
13 15 24 00 00 00 04 
21 23 32*00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 00 00 00 
13 15 24 33*00 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 34*00 00 
13 15 24 33 00 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 34 00 00 
13 15 24 33 35*00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 00 
05 14 16 25 34 36*00 
13 15 24 33 35 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
00 00 07 09 18 27 29 
00 06 08 17 26 28 37*
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 00 00 01 10 19 00 
38*00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 39*00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 00 00 03 12 
22 31 00 00 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 00 00 03 12 
22 31 40*00 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 41*00 03 12 
22 31 40 00 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 41 00 03 12 
22 31 40 42*02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 00 04 
21 23 32 41 43*03 12 
22 31 40 42 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 00 
13 15 24 33 35 44*04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
00 06 08 17 26 28 37 
05 14 16 25 34 36 45*
13 15 24 33 35 44 04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 
30 39 00 01 10 19 00 
38 00 07 09 18 27 29 
46*06 08 17 26 28 37 
05 14 16 25 34 36 45 
13 15 24 33 35 44 04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 
30 39 00 01 10 19 00 
38 47*07 09 18 27 29 
46 06 08 17 26 28 37 
05 14 16 25 34 36 45 
13 15 24 33 35 44 04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 
30 39 48*01 10 19 00 
38 47 07 09 18 27 29 
46 06 08 17 26 28 37 
05 14 16 25 34 36 45 
13 15 24 33 35 44 04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 
30 39 48 01 10 19 00 
38 47 49*09 18 27 29 
46 06 08 17 26 28 37 
05 14 16 25 34 36 45 
13 15 24 33 35 44 04 
21 23 32 41 43 03 12 
22 31 40 42 02 11 20 

作者帖子的预期输出:

30 39 48 01 10 19 28
38 47 07 09 18 27 29
46 06 08 17 26 35 37
05 14 16 25 34 36 45
13 15 24 33 42 44 04
21 23 32 41 43 03 12
22 31 40 49 02 11 20

最新更新