1.2汉诺塔问题

汉诺塔问题:

​ 给定三根柱子,记为 ,其中A,B,C 柱子上有 n个盘子,从上到下编号为
0到n-1, ,且上面的盘子一定比下面的盘子小。问:将A柱上的盘子经由B柱移动到C柱最少需要多少次?
在这里插入图片描述
思路分析:
把所有的盘子分成两个部分,除了最下面的盘子,其他的盘子视为一个整体。

(1)上面的所有盘子从开始位置移动到中间位置
(2)最下面的盘子直接从开始位置移动到目标位置
(3)上面的所有盘子从中间位置移动到目标位置。

public class D4_Hannuota {public static void main(String[] args) {hanoi(2,'a','b','c');}/*n:N个盘子from:开始in:中间to:目标无论多少盘子,都认为只有两个,上面的和最后一个。*/public static void hanoi(int n,char from,char in,char to) {if(n==1){System.out.println("第"+n+"个盘子从:"+from+"移动到:"+to);}else {//移动上面的所有盘子到中间位置hanoi(n-1,from,to,in);//移动下面盘子从开始位置到目标位置System.out.println("第"+n+"个盘子从:"+from+"移动到:"+to);//上面的盘子从中间位置到目标位置hanoi(n-1,in,from,to);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/156762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAX/MSP SDK学习02:普通入口、出口 代理入口的创建和使用

1. 普通入口、出口的创建和使用 #include "ext.h" // you must include this - it contains the external objects link to available Max functions #include "ext_obex.h" // this is required for all objects using the newer style for writing o…

学习Rust适合写什么练手项目?【云驻共创】

Rust是一门备受关注的系统级编程语言,因其出色的内存安全性、高性能和并发性能而备受赞誉。对于那些希望学习和掌握Rust编程语言的人来说,练手项目是一个不可或缺的环节。通过实际动手完成项目,你可以加深对Rust语言特性和最佳实践的理解&…

【SpringBoot系列教程-目录大纲】

《SpringBoot系列教程-目录大纲》 教程分为5大章节,内容包括SpringBoot基本概念、SpringBoot好处、SpringBoot快速入门、yml语法、SpringBoot自动配置原理、自动配置类、属性配置类、TypeExcludeFilter排除器、AutoConfigurationExcludeFilter排除器、自定义场景启…

DAY59 503.下一个更大元素II + 42. 接雨水

503.下一个更大元素II 题目要求: 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数&am…

HSV色彩空间 GRAY色彩空间

HSV色彩空间 BGR色彩空间是基于三基色而言,即红色、绿色、蓝色。而HSV色彩空间则是基于色调、饱和度和亮度而言的。 色调(H)是指光的颜色,例如,彩虹中的赤,橙,黄,绿,青…

【TCP连接的状态】

linux查看tcp的状态命令: 1)、netstat -nat 查看TCP各个状态的数量 2)、lsof -i:port 可以检测到打开套接字的状况 3)、 sar -n SOCK 查看tcp创建的连接数 4)、tcpdump -iany tcp port 9000 对tcp端口为9000的进行抓包 查看占用端口…

【运维】永久关闭selinux不当,导致无法启动

现象: 卡centos loading进度条 按esc键发现,启动报错: Failed to load SElinux policy ,freezing 可能的原因: selinuxdisabled 写错成disable 或者 错误的把selinuxtype改了,要改文中红框的部分。 解决方案: 1. 重启 2. 出现选择画面的时候 按e 3. 方向下键…

5-4计算一串字符的空格数字字符其他

#include<stdio.h> int main(){char c;int space0;//空格int letters0;//英文字母int numbers0;//数字int others0;//其他字符printf("请输入一行字符&#xff1a;");while((cgetchar())!\n)//获取字符的内容&#xff0c;到\n停止{if(c>a&&c<z|…

c语言常见的面试问题

在C语言编程中&#xff0c;面试官可能会询问你以下一些常见问题&#xff1a; 什么是C语言&#xff1f; C语言是一种通用的、过程式的计算机编程语言&#xff0c;由Dennis Ritchie在1972年创建。它是Unix操作系统的核心语言&#xff0c;也是许多其他编程语言&#xff08;如Go、…

树与二叉树堆:二叉树

二叉树的概念&#xff1a; 二叉树是树的一种&#xff0c;二叉树是一个节点&#xff0c;最多只有两个子节点&#xff0c;二叉树是一个特殊的树二叉树的度最大为2 从上图可得一棵二叉树是结点的一个有限集合&#xff0c;该集合: 或者为空由一个根结点加上两棵别称为左子树和右子…

【c++】前缀和教程

今天来讲前缀和 前缀和是什么&#xff1f; 我们先来看一个问题&#xff1a; 读入n和m&#xff0c;读入n个数&#xff0c;接下来m行&#xff0c;每行读入两个数a和b&#xff0c;输出第a个数加到第b个数 输入样例&#xff1a; 5 1 2 3 4 5 2 1 2 3 5 输出样例&#xff1…

P2 C++变量

前言 一 C变量的作用 本期我们来讨论一下c 中的变量。 在一个 C 程序中&#xff0c;大部分内容实际上都是在使用数据。我们操作任何类型的数据&#xff0c;如包括我们想要改变、想要修改&#xff0c; 想要读和写数据。我们都需要把数据存储进叫做变量的东西里面。变量允许我们…

SQL Server Count()函数

SQL Server Count()函数 SQL Server COUNT() 是一个聚合函数&#xff0c;它返回在集合中找到的项目数。 COUNT() 函数语法&#xff1a; COUNT([ALL | DISTINCT ] expression)ALL 指示COUNT() 函数应用于所有值。ALL是默认值。返回非NULL值的数量&#xff08;包括重复值&…

电子科技大学 分布式系统 期末复习笔记

第一章 为什么需要分布式系统&#xff1a;功能分离&#xff0c;固有的分布性&#xff0c;负载均衡&#xff0c;可靠性&#xff0c;经济性。 定义&#xff1a;分布式系统是这样一种系统&#xff0c;其中位于联网计算机上的组件仅通过传递消息来通信和协调它们的操作。 特点&am…

多模态大一统:通向全模态学习和通用人工智能的未来之路

随着AI技术的不断发展&#xff0c;研究者们正试图构建一种真正通用的人工智能&#xff0c;它能像人们那样以统一的方式处理和理解多种模态的信息。多模态大一统是这一愿景的关键&#xff0c;它旨在开启全模态LLM&#xff08;深度学习语言模型&#xff09;和通用AI时代的大门。在…

【ctfshow】web入门-信息搜集-web11~20

【ctfshow】web入门-信息搜集-web11~17 web11_域名其实也可以隐藏信息&#xff0c;比如flag.ctfshow.com 就隐藏了一条信息web12_有时候网站上的公开信息&#xff0c;就是管理员常用密码web13_技术文档里面不要出现敏感信息&#xff0c;部署到生产环境后及时修改默认密码web14_…

异行星低代码平台--第三方插件对接:钉钉平台对接(一)

异行星低代码平台可以集成钉钉&#xff0c;实现单点登录、消息推送和组织机构同步。 提示 此功能需要企业版授权才能使用。 钉钉集成​ 单点登录 异行星低代码平台集成到钉钉后&#xff0c;只要使用钉钉账户登录钉钉客户端&#xff0c;即可在钉钉中直接使用管理后台&#…

【漏洞复现】IP-guard WebServer 存在远程命令执行漏洞

漏洞描述 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危…

【C++】map multimap

文章目录 1.map介绍2.map的使用3.multimap介绍4.multimap的使用 1.map介绍 map的文档 翻译&#xff1a; map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#x…

Arthas查看数据库durid数据源情况

1、下载arthas curl -O https://arthas.aliyun.com/arthas-boot.jar 2、启动arthas java -jar arthas-boot.jar 3、查看数据库连接池配置 vmtool --action getInstances --className com.alibaba.druid.pool.DruidDataSource --express instances.{? #this.dbTypeName&qu…