python
# 汉诺塔:又称河内塔,问题是源于印度一个古老传说的益智玩具。
# 大梵天创造世界的时候做了三根金刚石柱子
# 在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘
# 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上
# 并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
# 函数TheTowerofHanol(n, s, e, m),n个圆盘从s柱移到e柱上,经过中间柱m
count = 0
def TheTowerofHanol(n, s, e, m):
global count
if n == 0:
return
elif n == 1:
count += 1
print(count, 'step:', s, 'move to', e)
else:
TheTowerofHanol(n-1, s, m, e)
TheTowerofHanol(1, s, e, m)
TheTowerofHanol(n-1, m, e, s)
if __name__ == '__main__':
n = int(input('enter the number:'))
TheTowerofHanol(n, 'A', 'C', 'B')
go
package main
import "fmt"
var count int
func TheTowerofHanol(n int, s, m, e byte) {
if n == 0 {
return
} else if n == 1 {
count += 1
fmt.Println(count, "step: ", string(s), "move to ", string(e))
} else {
TheTowerofHanol(n-1, s, m, e)
TheTowerofHanol(1, s, e, m)
TheTowerofHanol(n-1, m, e, s)
}
}
func main() {
count = 0
TheTowerofHanol(3, 'A', 'C', 'B')
}