java - 用菱形形式的数字填充二维数组

标签 java arrays multidimensional-array

我需要一些帮助来使用嵌套 for 循环填充 2D 数组。 所需的输出是这样的...

20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0
19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0
18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0
17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0
15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0
14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0
13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0
12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0
11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0
10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0
12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0
13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0
14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0
15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0
16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0
17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0
19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0
20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0

这是我填充数组的代码...

int row;
int column;
int counter = 10;
int counter1 = 10;
for (row = 0; row < array.length; row++) {
    array[row][0] = obj.getZ(10, counter);
    counter--;
    for (column = 0; column < array[row].length; column++) {
        array[row][column] = obj.getZ(counter1, 10);
        counter1--;

我已经将数组声明为 20 x 20,并且 obj.getZ 只是简单地调用此方法...

public double getZ(double x, double y) {
    double z = (Math.abs(x) + Math.abs(y));
    return z;

该数组是由x和y的绝对值组成的z值。

最佳答案

不是最好的解决方案,但它应该可以解决问题:

import java.util.Arrays;

class Scratch {
    public static void main(String[] args) {
        int[][] arr = new int[21][21];
        int row = 20;
        int column = 0;
        for (int i = 0; i < 21; i++) {
            column = row;
            for (int j = 0; j < 21; j++) {
                arr[i][j] = column;
                if (j < 10) {
                    column = column - 1;
                } else {
                    column = column + 1;
                }
            }
            if (i < 10) {
                row = row - 1;
            } else {
                row = row + 1;
            }
        }
        for (int[] arrRow : arr) {
            System.out.println(Arrays.toString(arrRow));
        }
    }
}

结果是:

[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

关于java - 用菱形形式的数字填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58019959/

相关文章:

java - MS SQL 中的 SELECT 语句返回丢失 2-4 天的日期

java - 重定向到 AbstractAuthenticationProcessingFilter 的结果

java - 我应该如何使用 guava TypeToken 反射性地实例化参数化类型?

java - Netbeans 建议将字段转换为最终字段,尽管我修改了该字段

go - 建立多维数组响应

java - AspectJ - 为什么使用注释而不是 ajc 编译器?

php - 合并数组内部数组

arrays - Hyperledger 结构 Node 错误 : 2 UNKNOWN: Stream removed Unhandled error for request GET/api/fabric/1_0/channels:

javascript - 获取数组内部的数组

c - C 中的变量矩阵