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

如何翻转倒金字塔?求助用单参数函数实现星号沙漏

搞定星号沙漏图形的小技巧

嘿,我来帮你解决这个沙漏图形的问题!首先,你完全可以在这里用代码块展示你的现有代码——只需要把代码用三个反引号(```)包裹起来,比如这样:

# 把你的现有代码放在这里就行

先聊聊正三角形的常见问题:一般都是空格和星号的数量计算没到位。假设你的函数参数是n(代表沙漏的“高度”,也就是正三角的层数),正三角每一行的空格数应该从n-1递减到0,星号数则从1递增到2n-1(每次加2),这样才能让三角形居中显示。

至于倒三角的翻转,其实就是把正三角的逻辑反过来就行:

  • 空格数从1递增到n-1
  • 星号数从2n-3递减到1(每次减2)
  • 注意倒三角要比正三角少一层,不然中间的星号行会重复哦

我给你写了个完整的示例代码,运行后就是你要的沙漏效果:

def print_hourglass(n):
    # 打印上半部分正三角形
    for i in range(n):
        # 打印前置空格,实现居中
        print(' ' * (n - 1 - i), end='')
        # 打印对应数量的星号
        print('*' * (2 * i + 1))
    
    # 打印下半部分倒三角形(从n-2开始,避免中间重复)
    for i in range(n-2, -1, -1):
        print(' ' * (n - 1 - i), end='')
        print('*' * (2 * i + 1))

# 测试示例,比如传入参数5
print_hourglass(5)

你可以把你现有的代码贴出来,我帮你排查下正三角的问题,或者调整倒三角的实现细节~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:20:40