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

如何用JavaScript打印列递增的指定数字图案?

解决数字图案按列递增输出的问题

你需要实现的是按列优先填充的数字图案,原代码是按行顺序递增数字,所以无法得到目标效果。以下是两种可行的解决方案:

方案一:通过公式直接计算每个位置的数字

观察图案规律,可以推导出每行第col个位置的数字计算公式,直接计算并输出:

const pattern = (n) => {
  for (let row = 0; row < n; row++) {
    let line = '';
    for (let col = 0; col <= row; col++) {
      // 计算当前位置的数字
      const num = row + 1 + col * (2 * n - col - 1) / 2;
      line += num + ' ';
    }
    // 移除末尾多余空格后输出
    document.write(line.trim() + "<br/>");
  }
};

pattern(4);

方案二:构建二维数组按列填充后输出

先创建二维数组,按列顺序填充数字,再逐行输出数组内容,逻辑更直观:

const pattern = (n) => {
  // 初始化n行的空数组
  const arr = Array.from({ length: n }, () => []);
  let count = 1;

  // 按列填充数字:第col列填充到row从col到n-1的位置
  for (let col = 0; col < n; col++) {
    for (let row = col; row < n; row++) {
      arr[row][col] = count++;
    }
  }

  // 逐行输出拼接后的内容
  arr.forEach(row => {
    document.write(row.join(' ') + "<br/>");
  });
};

pattern(4);

两种方案运行后,都能输出你需要的图案:

1
2 5
3 6 8
4 7 9 10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:45:37