有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java二维数组任务,我无法解决

最近我开始学习二维阵列,最近我遇到了这些任务,它们会给你10 x 10阵列的图像,你必须重新创建它。我完成了一些任务,但有一项任务给了我一个问题。似乎我真的很接近,但同时不是。我已经试了一段时间了,但是我找不到需要的答案

  public static void main(String[] args) {
    
    int A[][] = new int [10][10];

    for (int i = 0;  i <= 9; i++) {
      for (int j=9-i, n=1; j>=1; j--) {
        if (j <= 9) {
          A[i][j] = n++;
        }
      }
    }

    for (int i=0; i<10; i++) {
      for (int j=0; j<10; j++) {
        System.out.print(A[i][j]+"\t");
      }
      System.out.println();
    }
  }
} 

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

    这是另一个版本。它从下到上填充阵列

    • 首先,从9循环到0
    • 简单的循环通过调整起始点k开始填充数组,每次循环迭代将其减少i
    int A[][] = new A[10][10];
    
    for (int i = 9; i >= 0; i ) {
       for (int k = 9-i,z = 0; k > 0; k ) {
          A[i][z++] = k;
       }
    }
    
    for (int[] arr : A) {
        System.out.println(Arrays.toString(arr));
    }
    

    印刷品

    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    [8, 7, 6, 5, 4, 3, 2, 1, 0, 0]
    [7, 6, 5, 4, 3, 2, 1, 0, 0, 0]
    [6, 5, 4, 3, 2, 1, 0, 0, 0, 0]
    [5, 4, 3, 2, 1, 0, 0, 0, 0, 0]
    [4, 3, 2, 1, 0, 0, 0, 0, 0, 0]
    [3, 2, 1, 0, 0, 0, 0, 0, 0, 0]
    [2, 1, 0, 0, 0, 0, 0, 0, 0, 0]
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    
  2. # 2 楼答案

    所需的模式与主对角线对称,即对于一对od索引ij。这些单元格应具有相同的内容:a[i][j] = a[j][i]

    接下来,当迭代时,主对角线上的元素的开始数减少了2:9、7、5、3、1,嵌套循环的“宽度”从两侧开始减少

    因此,生成的代码可能如下所示:

    int A[][] = new int [10][10];
    
    for (int i = 0; i < 10 / 2; i++) {
        for (int j = i; j < 10 - i; j++) {
            A[i][j] = A[j][i] = 9 - i - j;
        }
    }
    

    输出:

    9   8   7   6   5   4   3   2   1   0   
    8   7   6   5   4   3   2   1   0   0   
    7   6   5   4   3   2   1   0   0   0   
    6   5   4   3   2   1   0   0   0   0   
    5   4   3   2   1   0   0   0   0   0   
    4   3   2   1   0   0   0   0   0   0   
    3   2   1   0   0   0   0   0   0   0   
    2   1   0   0   0   0   0   0   0   0   
    1   0   0   0   0   0   0   0   0   0   
    0   0   0   0   0   0   0   0   0   0