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

Java二维数组实现阶梯乘法表及现有代码优化问询

乘法表优化与阶梯乘法表实现

一、优化完整乘法表(移除多余循环)

你用3个循环实现完整乘法表确实冗余,仅需两层循环就能搞定:外层循环控制行号(1-9),内层循环控制每行的列号(1-9),直接计算行号*列号填充二维数组即可,时间复杂度从O(n³)降到O(n²),效率提升明显。

Python 优化代码

# 生成9*9完整乘法表
full_table = []
for i in range(1, 10):
    current_row = []
    for j in range(1, 10):
        current_row.append(i * j)
    full_table.append(current_row)

# 打印验证
for row in full_table:
    print(row)

Java 优化代码

public class FullMultiplicationTable {
    public static void main(String[] args) {
        int[][] fullTable = new int[9][9];
        // 两层循环填充数组
        for (int i = 0; i < 9; i++) {
            int rowNum = i + 1; // 行号从1开始
            for (int j = 0; j < 9; j++) {
                int colNum = j + 1; // 列号从1开始
                fullTable[i][j] = rowNum * colNum;
            }
        }
        // 格式化打印
        for (int[] row : fullTable) {
            for (int num : row) {
                System.out.printf("%2d ", num);
            }
            System.out.println();
        }
    }
}

二、实现阶梯状乘法表

阶梯表的核心逻辑是第i行仅生成i个元素,只需调整内层循环的终止条件:让列号从1遍历到当前行号即可。

Python 实现代码

# 生成阶梯状乘法表
step_table = []
for i in range(1, 10):
    current_row = []
    # 内层循环上限改为当前行号i,生成i个元素
    for j in range(1, i + 1):
        current_row.append(i * j)
    step_table.append(current_row)

# 打印验证
for row in step_table:
    print(row)

Java 实现代码

import java.util.ArrayList;

public class StepMultiplicationTable {
    public static void main(String[] args) {
        // 阶梯表每行长度不同,用ArrayList<int[]>存储更灵活
        ArrayList<int[]> stepTable = new ArrayList<>();
        for (int i = 1; i <= 9; i++) {
            int[] currentRow = new int[i];
            for (int j = 1; j <= i; j++) {
                currentRow[j - 1] = i * j;
            }
            stepTable.add(currentRow);
        }
        // 格式化打印
        for (int[] row : stepTable) {
            for (int num : row) {
                System.out.printf("%2d ", num);
            }
            System.out.println();
        }
    }
}

常见问题排查

如果之前调整循环失败,大概率是这两个原因:

  • 循环起始/终止条件错位(比如行号从0开始但未做+1转换,导致逻辑混乱)
  • 数组初始化不符合阶梯需求(Java中用固定长度二维数组会出现多余空元素,改用动态集合更合适)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:46:02