为了账号安全,请及时绑定邮箱和手机立即绑定

看不懂答案,为什么结果会出来那么多?到底递归了多少次

为什么结果会出来那么多?到底循环了多少次?函数内参数的顺序是任意的吗?

正在回答

3 回答

因为每次递归他就要走完全部代码除非遇到return

1,if n==1:

print a, '-->', c
       return

2,move(n-1, a, c, b)
3,print a, '-->', c

4, move(n-1, b, a, c)

当调用move(4, 'A', 'B', 'C')时进入函数后,

他要走1->2->3->4

到2时递归又要走一个1->2->3->4

把2的所有递归走完 还要回去走 3->4

0 回复 有任何疑惑可以回复我~

几种方案:

1、break跳出循环(如:while n>=100   break)

2、定义循环的范围

0 回复 有任何疑惑可以回复我~

递归的调用是倒过来的,你可以用n=2的带入你的函数观察执行步骤,然后n=3依次。参数是根据传入的顺序判断的,跟值没有关系。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758620    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

看不懂答案,为什么结果会出来那么多?到底递归了多少次

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信