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

如何实现首行1个星号、后续行星号递增且间距均匀的星形金字塔?

星号间距金字塔实现问题

我尝试创建一个星形金字塔,要求:

  • 第一行包含1个*
  • 第二行包含2个*且星号间有相等间距
  • 第三、第四行以此类推

我当前的实现代码如下:

let x = 4;
let text = "";
for(let i = 1; i <= x; i++) {
    for(let j = 1; j <= x - i; j++) {
        text += " ";
    }
    for(let k = 0; k < 2 * i - 1; k++) {
    text += "*";
    }
    text += "\n";
}
console.log(text);

但这段代码输出的是实心金字塔,我需要的是每行星号之间有相等间距的效果。


解决方案

调整内层循环逻辑,仅在每行的首尾位置添加*,其余位置填充空格,即可实现星号带间距的金字塔:

let x = 4;
let text = "";
for(let i = 1; i <= x; i++) {
    // 生成前置空格,控制金字塔的缩进
    for(let j = 1; j <= x - i; j++) {
        text += " ";
    }
    // 生成每行的星号和间隔空格
    for(let k = 1; k <= 2 * i - 1; k++) {
        // 仅首尾位置为星号,其余为空格
        if(k === 1 || k === 2 * i - 1) {
            text += "*";
        } else {
            text += " ";
        }
    }
    text += "\n";
}
console.log(text);

运行后输出(x=4时):

*
  * *
 *   *
*     *

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:15:58