鱼C论坛

 找回密码
 立即注册
查看: 1067|回复: 6

[已解决]递归函数的问题

[复制链接]
发表于 2019-12-7 15:43:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def draw(num):
    a='*'*(2*(4-num)+1)
    print(a.center(7))
    if num!=1:
        draw(num-1)           
        print(a.center(7))      这一行什么时候执行,,,,有些看不懂,,,,,,,

draw(4)



不断的递归,哪一行没有机会
最佳答案
2019-12-8 09:12:05
wzdyjn 发表于 2019-12-8 01:28
就是不明白最后那一句 为什么执行3次。。。。

递归深入了3次,再返回时也是三次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-7 16:05:59 | 显示全部楼层
简单的说,程序执行的流程是
draw(4)
a='*'*(2*(4-num)+1)
print(a.center(7))
draw(3)
a='*'*(2*(4-num)+1)
print(a.center(7))
draw(2)
a='*'*(2*(4-num)+1)
print(a.center(7))
draw(1)
print(a.center(7))
print(a.center(7))
print(a.center(7))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 16:19:40 | 显示全部楼层
程序执行流程:

draw(4) --> a='*'*(2*(4-4)+1) --> print(a.center(7)) -> draw(4-1) -->  a='*'*(2*(4-3)+1) --> print(a.center(7)) --> draw(3-1) --> a='*'*(2*(4-2)+1) --> print(a.center(7)) --> draw(2-1) --> a='*'*(2*(4-1)+1) --> print(a.center(7)) --> print(a.center(7)) --> print(a.center(7)) --> print(a.center(7))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-8 01:28:03 | 显示全部楼层
冬雪雪冬 发表于 2019-12-7 16:05
简单的说,程序执行的流程是
draw(4)
a='*'*(2*(4-num)+1)

就是不明白最后那一句 为什么执行3次。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-8 01:29:05 | 显示全部楼层
zltzlt 发表于 2019-12-7 16:19
程序执行流程:

draw(4) --> a='*'*(2*(4-4)+1) --> print(a.center(7)) -> draw(4-1) -->  a='*'*(2*(4 ...

就是不明白最后那一句 为什么执行3次。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-8 07:58:30 | 显示全部楼层
wzdyjn 发表于 2019-12-8 01:29
就是不明白最后那一句 为什么执行3次。。。。

函数执行完毕后返回到上一次调用它的函数中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-8 09:12:05 | 显示全部楼层    本楼为最佳答案   
wzdyjn 发表于 2019-12-8 01:28
就是不明白最后那一句 为什么执行3次。。。。

递归深入了3次,再返回时也是三次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表