递归——Hanoi塔问题

前言:有接近两个多月没有写博客了,上一写博客还是放暑假的时候8月16号,进入大三以来,自己对放松了自己好多,都不怎么搞技术了,不过我是不会这样一直放纵自己的,是时候搞下技术了,要好好珍惜大学时光。

 

hanoi塔问题

 

  算法思路:我们可以把这个问题分成两部分,一部分是第n个盘子,一部分是前n-1个盘子

   (相当于一个盘子),也就是说现在就相当于只有两个盘子在A上,那么我们只需要把第n个

    盘子移到B上,前n-1个盘子移动到C上,然后把C上的前n-1个盘子移到B上,也就是说如果

    能把前n-1个盘子都移到C上我们就可以把n个盘子从A移到B上,那么我们只需要把前n-2

     盘子移到C上我们就可以把n-1个盘子移好,………如此下去,我们可以得出如下算法:

     

public static void Hanoi(int n,char a,char b,char c){
    if(n>0)
{
Hanoi(n-1,a,c,b);    //将A杆上面的n-1个盘子,借组B杆,移到C杆上
move(a,b);
                Hanoi(n-1,c,b,a);   //将C杆上的n-1个盘子,借组A杆,移到B杆上
}
     }

 

 

 

 

小记:这只是一个小小的起步,坚持才是最重要的,希望csdn可以伴我走完大学旅程。

      

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值