递归求解汉诺塔移动路径
类型:程序题

题目说明

设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。有三个单字符字符串和一个整数。三个字符表示三个杆子的编号,整数为盘子的数目。

根据上述计算规则,补全下列代码。

函数名:hannota(n,a,b,c)

参数表:n -- 正整数表示盘子数,a --a杆子,b --b杆子,c --c杆子。

返回值:移动路径。

示例:n=3,返回:

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
def hannota(n,a,b,c):
    if n == 1:
        print(a ,"-->", c)
        return None
    if n == 2:
        print(a,"-->",b)
        Print(  ① )
        print(b,"-->",c)
        return None
    Hannota(  ②  )
    print(a,"-->",c)
    Hannota(  ③  )
a = "A"
b = "B"
c = "C"
n =int(input('请输入黄金圆盘数量n:'))
hannota(n,a,b,c)

评分标准

(1)a, "-->" ,c 或等效答案;(3分)

(2)n-1,a,c,b 或等效答案;(3分)

(3)n-1,b,a,c 或等效答案。(4分)

代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?