当前位置: 首页 > news >正文

汉诺塔问题

一本通1205:汉诺塔问题

【题目描述】

约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。

这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,615

这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出问题的解决方法并解决较小N值时的汉诺塔,但很难用计算机解决64层的汉诺塔。

假定圆盘从小到大编号为1, 2, ...

【输入】

输入为一个整数(小于20)后面跟三个单字符字符串。

整数为盘子的数目,后三个字符表示三个杆子的编号。

【输出】

输出每一步移动盘子的记录。一次移动一行。

每次移动的记录为例如 a->3->b 的形式,即把编号为3的盘子从a杆移至b杆。

【输入样例】

2 a b c

【输出样例】

a->1->c
a->2->b
c->1->b

链接

#include <bits/stdc++.h>
using namespace std;
int n;
char s1 , s2 , s3;
void f( int n , char a , char b , char c ){if(n == 1){printf("%c->%d->%c\n" , a , n , b); //输出}else{f(n-1 , a , c , b ); //A柱为原柱,移动到C柱,B是过渡柱printf("%c->%d->%c\n" , a , n , b);//输出f(n-1 , c , b , a);  //C柱为原柱,移动到B柱,A是过渡柱}
}
int main(){scanf("%d %c %c %c" , &n , &s1 , &s2 , &s3);f(n , s1 , s2 , s3);return 0;
}

相关文章:

汉诺塔问题

一本通1205&#xff1a;汉诺塔问题 【题目描述】 约19世纪末&#xff0c;在欧州的商店中出售一种智力玩具&#xff0c;在一块铜板上有三根杆&#xff0c;最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上&#xff0c;条件…...

Java on Azure Tooling 6月更新|标准消费和专用计划及本地存储账户(Azurite)支持

作者&#xff1a;Jialuo Gan - Program Manager, Developer Division at Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎阅读 Java on Azure 工具的六月更新。在本次更新中&#xff0c;我们将介绍 Azure Spring Apps 标准消费和专用计划支持以及本地存储账户&…...

Prometheus(八)-网络嗅探-黑盒监控

介绍 Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案&#xff0c;其允许用户通过&#xff1a;HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。用户可以直接使用go get命令获取Blackbox Exporter源码并生成本地可执行文件&#xff1a; go get prometheus…...

modbus TCP 通信测试

modbus TCP 通信测试 读取单个或多个线圈 发送指令&#xff1a;00 00 00 00 00 06 00 01 03 10 00 08 00 00 00 00 00 06 00 01 03 10 00 08 事务 处理 标识 协议 标识 长度 单元 标识 功能码 起始 线圈 地址 线圈 个数 06&#xff1a;后面的字节长度。 01&am…...

GDB Debug

使用gdb带着参数启动程序 在gdb中启动程序并传递命令行参数&#xff1a; gdb ./my_program (gdb) run arg1 arg2 arg3 这将在gdb中启动程序"my_program"&#xff0c;并将参数"arg1"、"arg2"和"arg3"传递给程序。 在启动gdb之前&…...

【项目流程】前端项目的开发流程

1. 项目中涉及的所有角色及其职责 - PM 产品经理 产品经理&#xff08;Product Manager&#xff0c;简称PM&#xff09;负责明确和定义产品的愿景和战略&#xff0c;与客户、用户、业务部门和其他利益相关者进行沟通&#xff0c;收集并分析他们的需求和期望。负责制定产品的详…...

JS监听浏览器关闭、刷新及切换标签页触发事件

蛮简单的东西&#xff0c;知道就会&#xff0c;不知道就不会&#xff0c;没什么逻辑可言。简单记录一下&#xff0c;只为加深点儿印象。 visibilitychange visibilitychange可以监听到浏览器的切换标签页。 直接上代码&#xff1a; <script>document.addEventListe…...

Unity 引擎做残影效果——3、顶点偏移方式

Unity实现残影效果 大家好&#xff0c;我是阿赵。 继续讲Unity引擎的残影做法。这次的残影效果和之前两种不太一样&#xff0c;是通过顶点偏移来实现的。 具体的效果是这样&#xff1a; 与其说是残影&#xff0c;这种效果更像是移动速度很快时造成的速度线&#xff0c;所以在移…...

【Linux】权限

1、shell命令以及运行原理 Linux 严格意义上说的是一个操作系统&#xff0c;我们称之为“核心&#xff08;kernel&#xff09;“ &#xff0c;但我们一般用户&#xff0c;不能直接使用 kernel。而是通过 kernel 的“外壳”程序&#xff0c;也就是所谓的shell&#xff0c;来与 k…...

Excel导入日期格式时自动转为五位数文本

问题描述&#xff1a;Excel导入数据时&#xff0c;当数据是日期可能会存在问题&#xff0c;日期格式转为文本了&#xff0c;例如“2023-07-31”接收时变为“45138”&#xff0c;导致后端解析日期出错&#xff0c;无法导入。 解决方法&#xff1a; 方法一&#xff1a;将Excel日…...

Mac使用brew安装软件报错

在使用brew安装软件时报错Failed to upgrade Homebrew Portable Ruby! brew install --cask --appdir/Applications docker> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:0cb1cc7af109437fe0e020c9f3b7b95c3c709b140bde9f991ad2c143…...

Android 实现MQTT客户端,用于门禁消息推送

添加MQTT依赖 implementation ‘org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2’ implementation ‘org.eclipse.paho:org.eclipse.paho.android.service:1.1.1’ 在Manifest清单文件中添加服务 <service android:name"org.eclipse.paho.android.service.Mq…...

跨境电商的广告推广怎么做?7个方法

在跨境电商竞争日趋激烈的市场环境下&#xff0c;跨境电商店铺引流成了制胜关键点。这里给大家分享一套引流推广的方法。 一、搜索引擎营销推广 搜索引擎有两个最大的优点是更灵活、更准确。搜索引擎营销的目标定位更精确&#xff0c;且不受时间和地理位置上的限制&#xff0…...

《Java-SE-第二十八章》之CAS

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…...

git之reflog分析

写在前面 本文一起看下reflog命令。 1&#xff1a;场景描述 在开发的过程中&#xff0c;因为修改错误&#xff0c;想要通过git reset命令恢复到之前的某个版本&#xff0c;但是选择提交ID错误&#xff0c;导致多恢复了一个版本&#xff0c;假定&#xff0c;该版本对应的内容…...

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了

1.简介 Fiddler最大的优势在于抓包&#xff0c;我们大部分使用的功能也在抓包的功能上&#xff0c;fiddler做接口测试也是非常方便的。 领导或者开发给你安排接口测试的工作任务&#xff0c;但是没有给你接口文档&#xff08;由于开发周期没有时间出接口文档&#xff09;&…...

Oracle open JDK和 Amazon Corretto JDK的区别

Oracle OpenJDK和Amazon Corretto JDK都是基于Java开放源代码项目的发行版&#xff0c;它们之间有一些区别。 1. 来源&#xff1a;Oracle OpenJDK是由Oracle公司领导和支持的&#xff0c;它是Java的官方参考实现之一。而Amazon Corretto JDK是由亚马逊公司开发和支持的&#xf…...

Spark写PGSQL分区表

这里写目录标题 需求碰到的问题格式问题分区问题&#xff08;重点&#xff09; 解决完整代码效果 需求 spark程序计算后的数据需要往PGSQL中的分区表进行写入。 碰到的问题 格式问题 使用了字符串格式&#xff0c;导致插入报错。 val frame df.withColumn("insert_t…...

Git 命令行登录

有时候登录命令行版本的git会出现这个错误 1remote: Support for password authentication was removed on August 13, 2021. 2remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for …...

性能分析记录

4实例压测TPS浮动在200-300 1.TPS浮动200-300&#xff0c;ART浮动的可能性是10-20ms&#xff0c;链路复杂是可接受的&#xff0c;链路简单则需要分析原因。 1&#xff09;缓存没命中&#xff0c;对某些账号缓存没命中&#xff0c;或缓存失效后导致隔段时间耗时升高。 2&…...

终极指南:zenodo_get深度解析与高效科研数据下载实战

终极指南&#xff1a;zenodo_get深度解析与高效科研数据下载实战 【免费下载链接】zenodo_get Zenodo_get: Downloader for Zenodo records 项目地址: https://gitcode.com/gh_mirrors/ze/zenodo_get 在科研数据管理领域&#xff0c;zenodo_get作为专业的Zenodo记录下载…...

4D 毫米波雷达在自动驾驶中的数据处理挑战与优化策略

1. 4D毫米波雷达为何成为自动驾驶的"火眼金睛" 第一次拆解4D毫米波雷达时&#xff0c;我被它精密的MIMO天线阵列震撼到了——这个巴掌大的金属板上密布着12个发射器和16个接收器&#xff0c;就像给汽车装上了昆虫的复眼。与传统毫米波雷达相比&#xff0c;4D版本最大…...

YOLO-v8.3零基础教程:跟着文档一步步,轻松玩转计算机视觉

YOLO-v8.3零基础教程&#xff1a;跟着文档一步步&#xff0c;轻松玩转计算机视觉 1. 认识YOLO-v8.3 1.1 什么是YOLO&#xff1f; YOLO&#xff08;You Only Look Once&#xff09;是一种革命性的计算机视觉算法&#xff0c;它能在单次前向传播中同时完成目标检测和分类任务。…...

YOLOv12与MATLAB联合仿真:算法原型快速验证与性能分析

YOLOv12与MATLAB联合仿真&#xff1a;算法原型快速验证与性能分析 对于习惯在MATLAB环境中工作的算法工程师和研究人员来说&#xff0c;一个常见的痛点在于&#xff1a;当需要验证前沿的深度学习目标检测算法&#xff08;如最新的YOLOv12&#xff09;时&#xff0c;往往不得不…...

告别串口!用USB网卡+SCP给嵌入式设备传文件的保姆级教程(含Windows/Linux双平台配置)

嵌入式开发者的USB文件传输革命&#xff1a;双平台高效解决方案 每次调试嵌入式设备时&#xff0c;看着进度条在串口终端上缓慢爬行&#xff0c;那种等待的煎熬简直让人抓狂。作为一名长期奋战在工业现场的开发者&#xff0c;我深知传统串口传输在大文件场景下的无力感——一个…...

从零到一:CosyVoice2语音克隆应用部署与使用全攻略

从零到一&#xff1a;CosyVoice2语音克隆应用部署与使用全攻略 1. 项目概述与核心价值 CosyVoice2-0.5B是阿里开源的一款零样本语音合成系统&#xff0c;通过预置镜像"强大的声音克隆声音合成语音克隆应用 构建by科哥"&#xff0c;开发者可以快速搭建专业级语音克隆…...

iStore:OpenWRT软件中心终极安装与使用完整指南

iStore&#xff1a;OpenWRT软件中心终极安装与使用完整指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心&#xff0c;纯脚本实现&#xff0c;只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store…...

Leather Dress Collection保姆级教学:LoRA与Textual Inversion协同增强皮革语义

Leather Dress Collection保姆级教学&#xff1a;LoRA与Textual Inversion协同增强皮革语义 1. 项目介绍 Leather Dress Collection 是一个基于Stable Diffusion 1.5的LoRA模型集合&#xff0c;专门用于生成各种皮革服装风格的图像。这个项目由Stable Yogi开发&#xff0c;包…...

通过EVE-NG模拟器快速搭建山石防火墙Web管理环境

1. 为什么选择EVE-NG搭建山石防火墙实验环境 对于网络工程师和安全运维人员来说&#xff0c;经常需要在实验环境中测试防火墙配置。传统方式需要购买物理设备&#xff0c;不仅成本高&#xff0c;而且部署周期长。EVE-NG模拟器的出现完美解决了这个问题&#xff0c;它就像是一个…...

从ESXi到vCenter:一个Trunk口的网络配置,如何影响你整个VMware虚拟化的稳定性?

从ESXi到vCenter&#xff1a;Trunk口网络配置如何重塑VMware虚拟化架构稳定性 在虚拟化环境中&#xff0c;网络配置往往是最容易被低估却影响最深远的环节。许多管理员在部署VMware集群时&#xff0c;会本能地选择最简单的Access口配置——毕竟它能快速让系统跑起来&#xff0c…...