【问题标题】:Two-dimensional array task that I can't solve我无法解决的二维数组任务
【发布时间】:2021-12-24 08:44:18
【问题描述】:

最近我开始学习二维数组,最近我遇到了这些任务,它们可以为您提供 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();
    }
  }
} 

感谢您的帮助!

【问题讨论】:

  • 什么是prnt.sc?
  • 他们是截图。
  • 我认为,如果您重新发布您正在尝试完成的任务和您尝试这样做的声明,以及生成的任何错误,您将有更好的机会获得回复。任何更多都是无关紧要的。有时仅仅重写一个问题有助于澄清该问题中的问题并导致解决方案。

标签: java arrays multidimensional-array


【解决方案1】:

所需的模式与主对角线对称,即对于一对 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   

【讨论】:

    【解决方案2】:

    这是另一个版本。它自下而上填充数组。

    • 首先,从 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]
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2019-03-18
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多