编程题

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

查看答案
赣ICP备20007335号-2