# 汉偌塔问题 * **问题分析** * 1、把`n-1`个圆盘从A经过C移动到B * 2、把第`n`个圆盘从A移动到C * 3、把`n-1`个圆盘从B经过A移动到C * **原理** * 代码 ```go func main() { run(3, "A", "B", "C") } func run(n int, a, b, c string) { if n > 0 { run(n-1, a, c, b) fmt.Println("从【"+a+"】移动到【"+c+"】") run(n-1, b, a, c) } } ``` ## 总结 对于潜在存在递归操作的操作,思考问题的最初状态。 简化使用 n = 1时应该进行的操作。依次推导 n = 2, n = 3 ... 得出结论。