You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中重构二维数组实现指定规则的降序填充需求?

代码调整方案

你现有代码的遍历方向是从数组左上角开始逐行向右填充,和需求中「从右上角开始、逐列向左、每列向下填充3个降序数值」的逻辑完全不匹配,需要调整遍历顺序和终止规则。

调整后的完整实现代码
public class ArrayFill {
    public static void main(String[] args) {
        int n = 34;
        int[][] a = new int[10][10];
        // 外层遍历列:从最右列(索引9)向左逐列处理
        for (int col = 9; col >= 0; col--) {
            // 内层遍历行:从当前列顶部开始向下填充3个位置
            for (int row = 0; row < 3; row++) {
                // 行索引越界判断,兼容不同大小的数组
                if (row >= a.length) break;
                a[row][col] = n--;
                // 数值递减到1直接终止填充
                if (n < 1) break;
            }
            if (n < 1) break;
        }

        // 按行输出数组,未填充的位置默认输出0,如需保留原有按列输出逻辑可自行修改此处
        for (int row = 0; row < 10; row++) {
            for (int col = 0; col < 10; col++) {
                System.out.print(a[row][col] + "\t");
            }
            System.out.println();
        }
    }
}

如果需要刚好把数值填到1,可以将初始n修改为30,刚好填满10列每列3个位置,最终填充到1停止。

核心逻辑说明
  • 外层循环控制列遍历:从最右侧列(索引为9)开始,逐次向左移动一列处理
  • 内层循环控制每列填充规则:固定从当前列的第0行开始,向下填充3个元素,每次赋值后数值自减1
  • 增加双重终止判断:数值递减到小于1时直接跳出所有循环,避免无效遍历
  • 可选保留原输出逻辑:如果需要维持你原有按列输出的格式,直接还原输出部分的代码即可

内容的提问来源于stack exchange,提问作者user16731988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:06:04