首页 > 其他 > 详细

7-递归-汉诺塔问题-Scala实现

时间:2020-06-11 16:46:44      阅读:75      评论:0      收藏:0      [点我收藏+]
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
    }
  }
}

  

7-递归-汉诺塔问题-Scala实现

原文:https://www.cnblogs.com/help-silence/p/13024175.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!