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

经典汉罗塔问题解决方案[通俗易懂]汉罗塔问题将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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浅谈大数据建模的主要技术:维度建模

    浅谈大数据建模的主要技术:维度建模我们不管是基于Hadoop的数据仓库(如Hive),还是基于传统MPP架构的数据仓库(如Teradata),抑或是基于传统Oracle、MySQL、MSSQLServer关系型数据库的数据仓库,其实都面临如下问题:怎么组织数据仓库中的数据?怎么组织才能使得数据的使用最为方便和便捷?怎么组织才能使得数据仓库具有良好的可扩展性和可维护性?

    2022年4月29日
    53
  • Java之数组转集合&集合转数组[通俗易懂]

    Java之数组转集合&集合转数组[通俗易懂]一、数组转换为集合需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢?原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。数组转换为集合使用的是数组的工具类Arrays的静态方法asList。查看API文档可知该方法返回由指定数组支持的固定大小的列表。eg:importjava.util.Arrays;importjava.u…

    2022年6月29日
    25
  • anycast隧道_一种以anycast方式部署的CDN监控可用性的方法与流程

    anycast隧道_一种以anycast方式部署的CDN监控可用性的方法与流程本发明涉及一种CDN节点监控可用性的方法,具体涉及一种以anycast方式部署的CDN监控可用性的方法。背景技术:现有CDN可用性的检测方法,一般通过一些探测点检测目的CDN的可用性,在探测到失败时,认为目的CDN不可用;对于以anycast方式部署的CDN监控,得到的结果是不准确的;因为多个探测点发出的探测数据不一定到达了所有的目的CDN;导致探测数据未到达的CDN实际上没有被监控到。技术实现要…

    2022年5月10日
    41
  • 2021-08-08 WPF控件专题 WrapPanel 控件详解[通俗易懂]

    2021-08-08 WPF控件专题 WrapPanel 控件详解[通俗易懂]1.WrapPanel控件介绍流面板子元素按顺序排列,如果按水平方向:从左到右,超出部分,自动换行到下一行垂直从上到下,下一列排列方向:OrientationItemWidthItemHeight调整面板的尺寸时,内部子元素的布局–自动调整弥补StackPanel的不足StackPanel与WrapPanel结合使用2.具体案例<BorderBorderBrush=”Red”BorderTh

    2022年7月23日
    14
  • jsonArray字符串转List

    jsonArray字符串转ListjsonArray字符串转List&lt;Map&lt;String,String&gt;&gt;StringjsonStr="[{user:{name:\"张三\",age:\"20\"}},{score:{yuwen:\"80\",shuxue:\"90\"}}]";List&lt;Map&lt;Stri

    2022年5月14日
    110
  • c++ ostringstream的用法(c语言的sprintf)

    c++ ostringstream的用法(c语言的sprintf)转载: https://blog.csdn.net/qq1987924/article/details/7671154ostringstream的用法【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstre…

    2022年6月23日
    35

发表回复

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

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