7-递归-汉诺塔问题-Scala实现
package com.atguigu.datastructures.recursion object HanoiTower { def main(args: Array[String]): Unit = { hanoiTower(10,'A','B','C') } //汉诺塔 //思路 //如果只有一个盘A-c //如果有两个或者两个以上盘,将看成两个部分,最下面盘,和上面的盘 //1.将 上面的盘 a-b //2.将 最下面的盘 a-c //3.将 b塔的所有盘 移动到c,b-c def hanoiTower(nums:Int,a:Char,b:Char,c:Char):Unit={ if (nums == 1){ println("第1个盘从"+a+"->"+c) }else{ hanoiTower(nums-1,a,c,b)//将nums-1个盘,从a->b,中间借助c println("第"+nums+"个盘从"+a +"->"+c) hanoiTower(nums-1,b,a,c)//将nums-1个盘,从b->c,中间借助a } } }