object practice16 { // 汉诺塔递归实现 // n: 圆盘数量 // a: 起始柱 // b: 辅助柱 // c: 目标柱 def f(n: Int, a: String, b: String, c: String): Unit = { if (n == 1) { // 只有一个圆盘时,直接从a移到c println(s"{c}") } else { // 第一步:将n-1个圆盘从a移到b,用c作为辅助 f(n - 1, a, c, b) // 第二步:将第n个圆盘从a移到c println(s"{c}") // 第三步:将n-1个圆盘从b移到c,用a作为辅助 f(n - 1, b, a, c) } }
def main(args: Array[String]): Unit = { // 测试:将4个圆盘从a移到b,用c作为辅助 f(4, "a", "c", "b") } }