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

难道说 print a,'-->',c 这句有移动盘子的意思?这不是一句打印的语句吗

如上如上如上

正在回答

3 回答

如果a只有一个圆盘,可以直接移动到c;

如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。

请编写一个函数,给定输入 n, a, b, c,打印出移动的步骤:

move(n, a, b, c)

例如,输入 move(2, 'A', 'B', 'C'),打印出:

A --> B
A --> C
B --> C

首先搞明白这个函数 表明的目标是 n 个盘子 从a 到c 其中可以借助b 

那么就很明白了 n == 1 只需要 a 移动到c

当n=2 的时候 先要将 a上第一个盘子移动到 b  再将a上的 第二盘子移动到 c  再将b上的盘子移动到c

那么推广一下 就知道了上面的分析是对的



def move(n, a, b, c):

    if n==1:

        print a,'-->',c

    if n>1:

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

        move(1,a,b,c)

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

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


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

柏舟0

为什么只有一个print a,'-->',c,整个输出却有b-->c,a-->b的啊,小白不懂诶,见笑了
2016-09-09 回复 有任何疑惑可以回复我~
#2

M 提问者

非常感谢!
2016-10-18 回复 有任何疑惑可以回复我~

这代表将A移到C的过程,只是用语句表示出来

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

如果A上只有一个盘子,则可将A上的盘子直接移动到C上

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

举报

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

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

进入课程

难道说 print a,'-->',c 这句有移动盘子的意思?这不是一句打印的语句吗

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