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

求助:PowerShell实现输入数字生成星号金字塔(初学者)

完善PowerShell金字塔绘制代码

没问题!我来帮你搞定这个金字塔绘制的问题~你之前的代码里,空格部分的循环逻辑有点小问题——每次都固定输出$x个空格,导致所有行的缩进都一样,所以看起来只有右侧的星号。只需要调整空格的数量,让它随着行数增加而递减,就能得到对称的完整金字塔啦。

完整代码

$x = [int](Read-Host "请输入一个数字")
for($i=1; $i -le $x; $i++) {
    # 输出每行前面的空格,数量为总层数减去当前行数
    for($k=1; $k -le $x - $i; $k++){
        Write-Host -NoNewLine " "
    }
    # 输出每行的星号,数量为2*当前行数-1(保证奇数个,对称)
    for($j=1; $j -le 2 * $i - 1; $j++) {
        Write-Host -NoNewLine "*"
    }
    # 每行结束后换行
    Write-Host
}

代码说明

  • 外层循环for($i=1; $i -le $x; $i++):控制金字塔的总层数,从第1行到第$x行。
  • 第一个内层循环:负责输出每行开头的空格,数量是$x - $i——比如输入5时,第1行有5-1=4个空格,第2行有5-2=3个空格,以此类推,这样星号就能居中显示。
  • 第二个内层循环:输出每行的星号,数量是2*$i -1,这样第1行1个星号,第2行3个,直到第5行9个,正好形成对称的金字塔形状。
  • 最后一行Write-Host:用来换行,因为前面的Write-Host -NoNewLine不会自动换行,需要手动添加换行让每行星号单独占一行。

测试效果(输入5时)

运行代码后输入5,会输出:
*





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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:47:57