Hanoi塔算法

  
         【Hanoi塔简介】:
                        假设存在A,B,C三个托盘,其中A托盘中按照尺寸由小到大排列着盘子。现要求,把盘子按照这一顺序从A盘放到C盘中。
                         说明:当存在大尺寸的盘子在小尺寸盘子下时,则会把小尺寸盘子压碎。
          
          【Hanoi塔算法】:
               
               
     void Hanoi(int n, int A, int B, int C) {
             if(n == 1)     {
                  Hanoi(A, 1, C);
             }
             else     {
                  Hanoi(n-1, A, C, B);
                  move(A, n, C);
                  Hanoi(n-1, B, A, C);
             }

          
          【算法说明】:    
                         当n=1时,说明A中只存在一个盘子,而只需将其移动到C中,则算法结束。
                         当n>=2时,则需将C盘作为过度,把A托盘中的n-1个盘子先暂时放入B中,同时
                         将第n个盘子放入得到C中。其次。将A用作过度,将B中的n-1个盘子依次通过A
                         之后放入到C中。算法完成。
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值