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

求解释代码和运行结果

https://img1.sycdn.imooc.com//5ac1537f0001961109720313.jpg

看不懂代码和运行结果,请各位大神解释一下

正在回答

4 回答

大神们,能把代码的运行步骤详细地列出来吗,为什么会得出这样的一个运行结果

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

其实这个很好理解,if n==1那段代码就是move(1,A,B,C),后面的那个就跟把大象放进冰箱一样的道理分三步:1、把n-1个盘子借助C从A-->B即move(n-1,A,C,B);2、把剩下的那一个盘子从A-->C即move(1,A,B,C)或者直接print("A-->C");3、把刚才移到B上的那n-1个盘子借助A移到C上即move(n-1,B,A,C)

希望对你有所帮助!哈哈……


0 回复 有任何疑惑可以回复我~
def move(n, a, b, c):
# 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归
    if n == 1:
        print a, '-->', c
        return
    move(n-1, a, c, b)   # 表示的是将n-1的盘子从a柱子上面移到b柱子上面去
    print a, '-->', c   # 输出最下面个盘子移从a移到c的路径
    move(n-1, b, a, c)   # 将b柱子上面的n-1个盘子移动到c柱子上面
move(2, 'A', 'B', 'C')


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

我的理解是 当N=1也就是一摞盘子中最下面那个盘子的时候可以直接移动到C,那么不是最下面的盘子呢?我们就把其他的盘子先移动到B,再当把最下面的盘子移动到C的时候再把剩下的盘子移动到C

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

举报

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

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

进入课程

求解释代码和运行结果

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