Discuss / Python / Hanoi

Hanoi

Topic source

霁天13

#1 Created at ... [Delete] [Delete and Lock User]

def hanoi(n, A, B, C): if n <= 0: print('盘子数目必须为正整数!') elif n == 1: print('将{0}最上面的盘子移动到{1}'.format(A, C)) else: hanoi(n - 1, A, C, B)

    # 递归调用函数本身,将A上面的n-1个盘子借助C移动到B。
    hanoi(1, A, B, C)
    # 调用n==1时的执行语句,将A剩下的最下面的盘子移动到C。
    hanoi(n - 1, B, A, C)
    # 再递归调用函数本身吧,将B的n-1个盘子借助A移动到C

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

output:

将A最上面的盘子移动到B 将A最上面的盘子移动到C 将B最上面的盘子移动到C 将A最上面的盘子移动到B 将C最上面的盘子移动到A 将C最上面的盘子移动到B 将A最上面的盘子移动到B 将A最上面的盘子移动到C 将B最上面的盘子移动到C 将B最上面的盘子移动到A 将C最上面的盘子移动到A 将B最上面的盘子移动到C 将A最上面的盘子移动到B 将A最上面的盘子移动到C 将B最上面的盘子移动到C


  • 1

Reply