问题描述
汉诺塔问题中限制不能将一层塔直接从最左侧移动到最右侧,也不能直接从最右侧移动到最左侧,而是必须经过中间。求当有N层塔的时候移动步数。
代码部分(python3)
打印出移动过程:
def hanoi(num): global steps if num == 1: print(A+'2'+B) print(B+'2'+C) else: hanoi(num-1) print(A+'2'+B) hanoi(num-1) print(B+'2'+C) hanoi(num-1)N = int(input())hanoi(N)
求移动次数
N = int(input())def hanoi(num): if num == 1: return 2 else: return hanoi(num-1) * 3 + 2print(hanoi(N))