经典汉罗塔问题解决方案[通俗易懂]

经典汉罗塔问题解决方案[通俗易懂]汉罗塔问题将a的盘子移动到c针且一次只能移动一个盘,在移动过程中必须保持大盘在下,小盘在上。1、将n-1个盘子从a移动到b盘2、将a剩下的一个盘子移动到c盘3、将b的n-1个盘子移动到c盘#include<iostream>usingnamespacestd;voidmove1(chara,charc){ cout<<a<<“–>”<<c<<endl;}voidhanoi(intn,

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

b为空针在移动过程中可以使用

将a的塔移动到c针且一次只能移动一个盘,在移动过程中必须保持大盘在下,小盘在上

使用递归来解题:

1、将n-1个盘子从a移动到b盘

2、将a剩下的一个盘子移动到c盘

3、将b的n-1个盘子移动到c盘 又回到了刚开始

#include<iostream>
using namespace std;
//将最后一个塔进行移动
void move1(char a,char c)
{
 	cout<<a<<"-->"<<c<<endl;
} 

//递归公式
void hanoi(int n,char a,char b,char c)//目的将n个盘子从a移动到c
{
	if(n==1)//当a只有一个盘子的情况
	move1(a,c);
	else
	{
		hanoi(n-1,a,c,b);//首先将n-1个移动到b盘上
		move1(a,c);//将最大的盘子放在c盘
		hanoi(n-1,b,a,c);//借助a盘将b盘上n-1个塔移动到c盘,又回到了开始
	}
	
 } 
 int main()
{
	cout<<"请输入a上有多少个汉罗塔:";
	int n;
	cin>>n;
	hanoi(n,'a','b','c'); 
	return 0;
 }

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183488.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BufferedWriter详解[通俗易懂]

    BufferedWriter详解[通俗易懂]字符缓冲流缓冲流:BufferedWriter高效读写支持输入换行符可以一次写一行,一次读一行。案例/**BufferedWriter*使用字符缓冲流写入文件**/publicclassTestBufferedWriter{publicstaticvoidmain(String[]args)throwsException{//1.创建一个缓冲流FileWriterfw=newFileWriter(

    2022年6月10日
    30
  • socket通信简单介绍

    socket通信简单介绍

    2021年12月6日
    49
  • Mysql 培训

    Mysql 培训

    2021年11月23日
    49
  • activation code激活码【2021.10最新】「建议收藏」

    (activation code激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    74
  • Linux文件系统目录结构详解

    Linux文件系统目录结构详解引言对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识。在Linux或Unix操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。linux

    2022年5月13日
    40
  • c++11实现DLL帮助类

    用过DLL的人都会发现,在C++中调用dll中的函数有点繁琐,调用过程如下:在加载dll后还要定义一个对应的函数指针类型,接着调用GetProcAddress获取函数地址,再转成函数指针,最后调用函数

    2021年12月28日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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