题目
f(n, A, B, C) f(盘子的数量,起点,要借用的柱子,终点) 目标:在A上有n个盘子,我们需要借助B,把他们都移动到 C
如果:n == 1: 直接从 A 移动到 C 否则:
- 把n-1个盘子从A 移动到 B
- 把一个盘子从A移动到C
- 把n-1个盘子从B 移动到 C
object base38 {
def f(n: Int, A: Char, B: Char, C: Char): Unit = {
if (n == 1) {
println(s"${A} ----> ${C}")
} else {
f(n - 1, A, C, B)
println(s"${A} ----> ${C}")
f(n - 1, B, A, C)
}
}
def main(args: Array[String]): Unit = {
f(4, 'A', 'B', 'C')
}
}