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

如何打印不直接输出i、j变量的指定数字图案?现有代码输出不符预期

如何打印指定数字图案(不直接输出i、j变量)

我需要打印一种不直接输出i、j变量的数字图案,但多次调整数值都没得到预期结果。

现有代码:

int k = 1, p = 0;
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++) {
        p += k;
        System.out.print(p + " ");
    }

    k++;
    System.out.println();
}

当前输出:

1 
3 5 
8 11 14 
18 22 26 30 
35 40 45 50 55 

期望输出:

1
3 5
5 8 11
7 11 15 19
9 14 19 24 29

问题分析

当前代码的核心问题是全局变量p持续累加,没有按行重置起始值,且k的增量逻辑不符合期望图案的规律。拆解期望输出的规律:

  • 第i行的起始数字为2*i - 1(i从1开始计数)
  • 第i行内每个数字与前一个的差值等于当前行号i

修正后的代码

for (int i = 1; i <= 5; i++) {
    int current = 2 * i - 1; // 初始化每行的起始值
    for (int j = 1; j <= i; j++) {
        System.out.print(current + " ");
        current += i; // 每行内按行号递增
    }
    System.out.println();
}

逻辑说明

  1. 外层循环控制行数i,范围从1到5
  2. 每行单独初始化current为该行的起始值,避免全局变量的累积干扰
  3. 内层循环控制每行的数字个数,输出当前值后,将current加上当前行号i,保证每行内的数字增量一致
  4. 每行结束后执行换行,匹配期望的输出格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:41:15