Java 创建一个内部变大的 2d int 数组
Java creating a 2d int array which getting bigger inside
我想创建一个从外到内越来越大的二维整数数组,第一层应该从1开始,下一层应该高1。
当 n = 3 时,它应该是这样的:
- 1 1 1 1 1 1
- 1 2 2 2 2 1
- 1 2 3 3 2 1
- 1 2 3 3 2 1
- 1 2 2 2 2 1
- 1 1 1 1 1 1
这就是我已有的
int n = 3;
int[][] feld = new int[2*n][2*n];
int c = 1 ;
for (int i = 0; i < 2*n; i++) {
for (int j = 0; j < 2*n; j++) {
feld[i][j] = c-i+j;
}
c++;
}
for (int i = 0; i < feld.length; i++) { //this to printing the matrix
for (int j = 0; j < feld[i].length; j++) {
System.out.print(feld[i][j] + " ");
}
System.out.println();
}
这应该有效。
int n = 3;
int[][] feld = new int[2*n][2*n];
int c = 0;
while(c<n) {
for(int i = c; i < 2*n-c; i++) {
feld[c][i] = c+1;
feld[i][c] = c+1;
feld[2*n-c-1][i] = c+1;
feld[i][2*n-c-1] = c+1;
}
c++;
}
for (int i = 0; i < feld.length; i++) { //print the matrix
for (int j = 0; j < feld[i].length; j++) {
System.out.print(feld[i][j] + " ");
}
System.out.println();
}
您可以将 n 更改为任何值,它应该仍然有效
我想创建一个从外到内越来越大的二维整数数组,第一层应该从1开始,下一层应该高1。
当 n = 3 时,它应该是这样的:
- 1 1 1 1 1 1
- 1 2 2 2 2 1
- 1 2 3 3 2 1
- 1 2 3 3 2 1
- 1 2 2 2 2 1
- 1 1 1 1 1 1
这就是我已有的
int n = 3;
int[][] feld = new int[2*n][2*n];
int c = 1 ;
for (int i = 0; i < 2*n; i++) {
for (int j = 0; j < 2*n; j++) {
feld[i][j] = c-i+j;
}
c++;
}
for (int i = 0; i < feld.length; i++) { //this to printing the matrix
for (int j = 0; j < feld[i].length; j++) {
System.out.print(feld[i][j] + " ");
}
System.out.println();
}
这应该有效。
int n = 3;
int[][] feld = new int[2*n][2*n];
int c = 0;
while(c<n) {
for(int i = c; i < 2*n-c; i++) {
feld[c][i] = c+1;
feld[i][c] = c+1;
feld[2*n-c-1][i] = c+1;
feld[i][2*n-c-1] = c+1;
}
c++;
}
for (int i = 0; i < feld.length; i++) { //print the matrix
for (int j = 0; j < feld[i].length; j++) {
System.out.print(feld[i][j] + " ");
}
System.out.println();
}
您可以将 n 更改为任何值,它应该仍然有效