python实现汉诺塔问题
汉诺塔(又称河内塔)问题是印度的一个古老的传说.传说中,开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆形的金片,最大的 一个在底下,其余一个比一个小,依次叠上去,寺院的僧侣依照一个古老的预言,不知疲倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作 为帮助,但每次只能搬一个,而且大的不能放在小的上面,预言说,当这些金片移动完毕后,世界就会灭亡。
代码块
#!/usr/bin/env python
n = int(input('please input a number:'))
count=1
def f(n, a, b, c):
global count
if n == 1:
print('%d:\t%s --> %s' % (count,a,c))
count += 1
else:
f(n-1, a, c, b)
f(1, a, b, c)
f(n-1, b, a, c)
f(n, 'A', 'B', 'C')
运行结果:
[root@yuan python]# ./hannuota.py
please input a number:3
1: A –> C
2: A –> B
3: C –> B
4: A –> C
5: B –> A
6: B –> C
7: A –> C