我在 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
我嘗試了幾種不同的方法,但無法提出正確的解決方案。我感覺 div 和 mods 以某種方式被用于此,但我無法弄清楚。如果有人想要一個好的挑戰,就是這樣哈哈哈!
uj5u.com熱心網友回復:
我已經按照您的規范撰寫了代碼,并顯示了網格在程序中每個點的樣子。它沒有像您預期的結果那樣出現......所以您沒有正確描述規則,或者您的“預期輸出”寫錯了。
這是我的代碼:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441758.html
上一篇:如何決議VBA代碼行指令
下一篇:擬合給定2D輪廓的橢球
