几个小时以来,我一直在try 按照下面的图像对角线填充10x10的2D数组,但在判断了所有可能的使用行和列的方法后,我似乎仍然无法识别我对代码的误解.

我应该得到的是:

enter image description here

这就是我所走的路,我不知道我做错了什么:

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

推荐答案

您首先需要循环各行,并且知道这是一个对角线循环,因此每一步的起点将是(i,i)元组.从那里开始,一个内部循环循环至多2个元素,并更新给定位置的值(如果它们在边界内).每当我们为一个给定的元素设置一个值时,我们就会递减currentIndex,所以我们不必担心它的值.

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) {
        int currentIndex = 27;
        int[][] array = new int[10][10];
        for (int i = 0; i < array.length; i++) {
            for (int j = i; j <= i + 2 && (j < array[i].length); j++) {
                array[i][j] = currentIndex--;
            }
        }
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                System.out.print((array[j][i] > 9 ? "" : " ") + array[j][i] + " ");
            }
            System.out.println();
        }
    }
}

https://www.mycompiler.io/view/0rg7WTh30b9

Java相关问答推荐

如何使用CSS为选定但未聚焦的表格行设置背景 colored颜色 ?

Cosmos Change Feed Process Lag远远超过收集中的记录数量

如何在返回bigint []值的子查询中使用any?

Spring Batch 5-不要让它在数据库中自动创建表

@org.springframework.beans.factory.annotation.Autowired(required=true)-注入点有以下注释:-SpringBoot

现场观看Android Studio中的变化

Java记录的不同序列化/反序列化

如何才能使我的程序不会要求两次输入?

如何找到MongoDB文档并进行本地化?

如何使用带有谓词参数的方法,而不使用lambda表达式

使用用户引入的参数生成人员数组

如何在Cosmos DB(Java SDK)中增加默认响应大小

从映射列表中检索所有键

Domino中不同的java.Protocol.handler.pkgs设置在XPages Java中导致错误

Android应用程序为错误的显示类型 Select 尺寸文件

如何使这两种方法合二为一?

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

向Java进程发送`kill-11`会引发NullPointerException吗?

Kotlin-仅替换字符串中最后一个给定的字符串

验证没有';t work on Hibernate Entity';s字段