递归求解汉诺塔移动路径

bw223261 程序题 共 个子题

题目说明

设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着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分)

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧