forked from go/golangs_learn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
602 B
602 B
汉偌塔问题
-
问题分析
- 1、把
n-1
个圆盘从A经过C移动到B - 2、把第
n
个圆盘从A移动到C - 3、把
n-1
个圆盘从B经过A移动到C
- 1、把
-
原理
-
代码
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 ... 得出结论。