AdoTowers


私信TA

用户名:AdoTowers

访问量:1484

签 名:

等  级
排  名 3351
经  验 1883
参赛次数 0
文章发表 4
年  龄 0
在职情况 在职
学  校 苍南中学
专  业

  自我简介:

解题思路:

   如果要把n个环从i移动到j分为三个部分:
   第一部分:
       将前n-1个环移动到另一个柱子上,由于只有三根柱子且分别为1、2、3
       =>i + j + 另一根柱子 = 6
       =>另一根柱子 = 6 - i - j
       =>前往下一个问题,把n-1个环从i移动到6 - i - j上
   第二部分:
       将第n个环移动从i移动到j上
   第三部分:
       将前n-1个环从另一个柱子上移回到第j跟柱子上
       =>前往下一个问题,把n-1个环从6 - i - j移动到j上
注意事项:
        注意移动到第1跟柱子后,就不需要移动前一个柱子了,因为没有了
参考代码:

def hanoi(n, i, j):

   if n != 1:
       hanoi(n - 1, i, 6 - i - j)
   print("Move %d from %d to %d" % (n, i, j))
   if n != 1:
       hanoi(n - 1, 6 - i - j, j)


num = int(input())
hanoi(num, 1, 3)

 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区