汉罗塔递归c_递归实现汉诺塔问题

汉罗塔递归c_递归实现汉诺塔问题递归解决汉罗塔问题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

思路

因为要将 A 柱上的圆盘全部转移到 C 柱上,所以先将最下面的最大的圆盘转移到 C 柱,将上面所有的圆盘看成一个整体,那么将这个整体转移到 B 柱上就可以将最大的圆盘转移到 C 柱了。然后,将现在 B 柱上最大的圆盘转移到 C 盘上需要借助 A 盘。重复上面的步骤,利用递归的思想。

代码

package Recursion;

public class _04_HanoiTower { 
   
    public static void main(String[] args) { 
   
        _05_Tower tower = new _05_Tower();
        tower.move(5,'A','B','C');
    }
}
package Recursion;

public class _05_Tower { 
   
    // num 表示要移动的个数, a,b,c 分别表示A塔, B塔,C塔
    public void move(int num, char a, char b, char c) { 
   
        //如果只有一个盘 num = 1
        if (num == 1) { 
   
            System.out.println(a + "->" + c);
        }else{ 
   
            //如果有多个盘,可以看成两个,最下面的和上面的所有盘
            //(1)先移动上面所有的盘到 b,借助 c
            move(num - 1, a, c, b);
            //(2)把最下面的的这个盘,移动到 c
            System.out.println(a + "->" + c);
            //(3)再把 b塔的所有盘,移动到c , 借助a
            move(num - 1, b, a, c);
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182810.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • clone一个react项目怎么运行[通俗易懂]

    首先当你从git上面clone一个项目的时候怎么让项目跑起来,首先看项目目录结构,找到README.md上面有项目运行的步骤,如果没有可以看package.json文件,找到scripts上面有dev所以跑起来项目就使用npmrundev有start就使用npmstart但是要先安装项目依赖使用npminstall依赖下载完成就可以使用npmrundev/npm…

  • Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)[通俗易懂]

    Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)[通俗易懂]from:http://blog.coolaj86.com/articles/getting-started-with-amazon-ec2-1-year-free-aws-vps-web-hosting.htmlAmazonWebServicesGoogle”AmazonWebServiceFreeTier”http://aws.amazon.com/…

  • Matlab中axis函数用法总结

    Matlab中axis函数用法总结axis主要是用来对坐标轴进行一定的缩放操作,其操作命令主要如下:1、axis([xminxmaxyminymax])设置当前坐标轴x轴和y轴的限制范围2、axis([xminxmaxyminymaxzminzmaxcmincmax])设置x,y,z轴的限制范围和色差范围。3、v=axis返回一个行向量,记录了坐标范围4、axis…

  • fastjson List转JSONArray以及JSONArray转List「建议收藏」

    fastjson List转JSONArray以及JSONArray转List「建议收藏」1.fastjson List转JSONArrayList<T>list=newArrayList<T>();JSONArrayarray=JSONArray.parseArray(JSON.toJSONString(list));2.fastjson JSONArray转ListJSONArrayarray=newJSONArray();List&…

  • 分享一个C#的分页类建议收藏

    废话不说只有代码:1usingSystem.Linq;2usingSystem.Collections.Generic;34namespaceCommonLibrary5{6

    2021年12月20日
  • 从0到1打造正则表达式执行引擎(一) 正则表达式转NFA

    从0到1打造正则表达式执行引擎(一) 正则表达式转NFA文章目录前置知识有限状态机状态机下的正则表达式串联匹配并连匹配(正则表达式中的**|**)重复匹配(正则表达式中的**?+***)重复0-1次?重复1次以上重复0次以上匹配指定次数特殊符号(正则表达式中的**.\d\s……**)子表达式(正则表达式**()**)练习题代码实现建图匹配下集预告功能完善化DFA引擎正则引擎优化今天是五一假期第一天,这里先给大家拜个晚年,咳咳!!我…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号