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

move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去

#-*- coding:utf-8 -*-
# move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去
def move(n, a, b, c):
# 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归
    if n == 1: 
        print a, '-->', c
        return
# 表示的是将n-1的盘子从a柱子上面移到b柱子上面去
    move(n-1, a, c, b)
# 输出最下面个盘子移从a移到c的路径
    print a, '-->', c
# 将b柱子上面的n-1个盘子移动到c柱子上面
    move(n-1, b, a, c)

move(4, 'A', 'B', 'C')

正在回答

2 回答

从 a 经过 c 搬运到 b,请问 “经过c”是什么意思呢?n-1个盘子不是可以直接就可以搬到b的吗?为什么说要经过c呢?求解。

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

完成 n 个盘子从 a 经过 b 到 c 的搬运只需要3步,第一步:将 n-1 个盘子从 a 经过 c 搬运到 b,即move(n-1, a, c, b); 第二步:将 第 n 个盘子 从 a 移到 c,即 print a, '-->', c; 第三步: 将 n-1个盘子从 b 经过 a 搬运到 c,即move(n-1, b, a, c);完事, 至于这 n-1 个盘子是怎么搬运的呢,他又自己进入了下一个循环
0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去

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