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

Python递归实现三角形图案打印:倒置输出问题求助

修复递归打印正三角的问题

你的代码之所以输出倒三角,核心原因是jtriangle函数的执行顺序搞反了——当前逻辑是先打印y个星号的行,再递归处理y-1行,这会让星号多的行先输出,星号少的行后输出,自然形成倒三角。

解决方案

调整jtriangle里的执行顺序,先递归处理行数更少的子问题,再打印当前行数对应的星号行。这样就能先输出星号少的行,再逐步递增,得到正三角。

修改后的代码:

def itriangle(x):
    if x == 0:
        return
    print("*", end="")
    itriangle(x-1)

def jtriangle(y):
    if y == 0:
        return
    # 先递归处理y-1行,再打印当前行
    jtriangle(y-1)
    itriangle(y)
    print()

jtriangle(5)

运行结果

执行后会得到预期的正三角:

*
**
***
****
*****

逻辑说明

递归打印递增序列的关键是先解决规模更小的子问题(比如先完成1个星号行的打印,再处理2个星号的行),而非先处理当前规模的问题。你之前的逻辑是从大到小处理,调整顺序后变成从小到大,就完全符合预期了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:12:09