汉诺塔C语言实现

article/2025/3/11 0:11:18

汉诺塔背景

文章目录

  • 汉诺塔背景
  • 前言
  • 一、什么是汉诺塔?
  • 二、汉诺塔问题的背景
  • 三、汉诺塔问题的代码实现
    • 1.代码原理
    • 2.代码实现


前言

汉诺塔问题,是心理学实验研究常用的任务之一。该问题的主要材料包括三根高度相同的柱子和一些大小及颜色不同的圆盘,三根柱子分别为起始柱A、辅助柱B及目标柱C。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是汉诺塔?

汉诺塔(又称河内塔)问题是印度的一个古老的传说。 开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。

二、汉诺塔问题的背景

相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上(以下动图来源于百度)。
汉诺塔游戏样例

三、汉诺塔问题的代码实现

1.代码原理

C语言的函数递推,通过递推将A B C三个位置互换来实现汉诺塔。

2.代码实现

#include<stdio.h>
void hnt(int n, char A, char B, char C)
{if (1 == n){printf("%c -> %c\n", A, C);}else{hnt(n-1,A,C,B);printf("%c -> %c\n", A, C);hnt(n-1, B, A, C);}
}
int main()
{int n = 0;printf("请输入几级汉诺塔:");scanf("%d",&n);hnt(n,'A','B','C');return 0;
}


http://chatgpt.dhexx.cn/article/dO3dBOxE.shtml

相关文章

C语言汉诺塔详解

问题概述&#xff1a;在A柱子上从下往上按照大小顺序摞着N片黄金圆盘。要求把圆盘从下面开始按大小顺序重新摆放在另一根(B or C)柱子上。并且规定&#xff0c;在小圆盘上不能放大圆盘&#xff0c;在三根柱子之间一次只能移动一个圆盘。 如图所示&#xff1a; (ps&#xff1a;…

C语言实现汉诺塔详细步骤(递归与非递归)及代码

前言 C语言汉诺塔问题是一个经典的问题&#xff0c;在学习编程的初学者中非常流行。它涉及到了递归的思想&#xff0c;能够帮助我们理解递归的基本原理。 首先&#xff0c;我们来了解一下汉诺塔的问题。汉诺塔问题是指&#xff1a;有三根柱子A,B,C&#xff0c;A柱子上有n个盘…

汉诺塔(C语言)

文章目录 一、什么是汉诺塔问题&#xff1f; 二、实现步骤 三、代码实现 四、代码分析 一、什么是汉诺塔问题&#xff1f; 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金…

图文详解汉诺塔(附C语言实现代码)

关注、星标公众号&#xff0c;直达精彩内容 来源&#xff1a;http://a.nxw.so/1iDyQD 一、前言 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根…

C语言 - 汉诺塔详解(超详细)

文章目录 一、前言二、玩游戏三、汉诺塔打印步数四、汉诺塔打印步骤 一、前言 一、汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下…

汉诺塔问题以及青蛙跳台阶问题(附C语言代码)

汉诺塔问题&#xff1a; 汉诺塔问题的源于印度一个古老传说的益智玩具。大焚天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照先大后小的顺序摞着64片圆盘。大焚天命令婆罗门把圆盘从下面按大小顺序重新摆放在另一根柱子上&#xff0c;并且规定在小盘…

Mac上显示实时网速小工具

1.iStat Menus 6 功能较丰富&#xff0c;比如你想看大冬天电脑温度等&#xff0c;毕竟Mac本出现过无法充电和无法开机的情况&#xff0c;明明是90多的点&#xff08;自己MBP2018出现过&#xff09; 下载地址&#xff1a;https://bjango.com/mac/istatmenus/ 激活&#xff1a…

在mac上显示网速的软件——iStat Menus 5:

在mac上显示网速的软件——iStat Menus 5: https://bjango.com/mac/istatmenus/ 注册码: Email: 982092332qq.com SN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH3S-8SGA 「注册码源于:http://www.pc6.com/mac/111587.html」 转载于…

断点续传

断点续传的实现思路 1、每次一进来&#xff0c;先给总大小和已经下载的大小赋值&#xff0c;判断若不是从头下载&#xff0c;则显示进度条2、暂停的时候&#xff0c;取消请求&#xff0c;并用 NSUserDefaults记录下载的暂停位置&#xff08;客户端记录&#xff09;3、继续下载的…

iStat Menus 无法正常读取传感器温度的解决办法

文章目录 问题解决方式如果是App Store版本&#xff0c;安装插件如果是突然读取不到&#xff0c;尝试重置传感器过滤器重置Mac的SMC使用新版软件 问题 换了电脑之后&#xff0c;像往常一样安装了各种惯用软件。最后发现iStat Menus 没办法读取硬件温度&#xff0c;只能读取到一…

Mac上实时网速、内存等显示

对我这种有强迫症的&#xff0c;要监控各种参数&#xff0c;比如实时网速显示&#xff0c;这里给大家推荐 iStat Menus 1、官网下载 https://bjango.com/mac/istatmenus/ 2、注册码&#xff08;仅供学习研究&#xff0c;误作商业用途&#xff09; xxxx-xxxx-xxxx-xxxx-xxxx…

Mac过热降频的罪魁祸首,竟是插到了左边的Type-C口

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 自从MacBook Pro换成最新设计后&#xff0c;用户的吐槽就没停过&#xff0c;最大的槽点就是那4个Type-C插口。 虽然你今后离不开转接器了&#xff0c;但苹果说4个Type-C更方便&#xff0c;因为可以随便插&#xff0c;每个都可以给…

笔记本计算机左侧插,Mac过热降频的罪魁祸首,竟是插到了左边的Type-C口!

Mac过热降频的罪魁祸首&#xff0c;竟是插到了左边的Type-C口&#xff01; 2020-04-27 19:00:31 2点赞 1收藏 0评论 创作立场声明&#xff1a;长期不正经&#xff0c;独立主观第三方 晓查 发自 凹非寺 鹅板凳 报道 | 公众号 QbitAI 自从MacBook Pro换成最新设计后&#xff0c;用…

Mac常用软件推荐

今天推荐一些Mac上常用的软件&#xff0c;如果你不是开发者&#xff0c;也同样可以安装这些软件&#xff0c;这些软件确实很方便 安装包打不开的问题有时候我们下载下来的安装包双击后打不开&#xff0c;提示来自身份不明的开发者或者提示已损坏&#xff0c;解决办法如下&#…

mac过热_如何阻止Mac过热

mac过热 sergey causelove/Shutterstock.com sergey causelove / Shutterstock.com An overheating Mac is loud, hot to the touch, and often slow or unresponsive. Heat is notoriously bad for computer hardware, so keeping things cool might help prolong the life o…

了不起的全能MAC系统监测工具iStat Menus 5下载

iStat Menus 5 是一款由软件开发商 Bjango 制作的 System Monitor &#xff08;工具&#xff0c;也是笔者电脑里的必装应用之一&#xff0c;它能让用户最快速、最直观地了解到几乎各硬件所有的运行状态&#xff0c;其中包括&#xff1a;CPU 中央处理器、GPU 图形处理器、Memory…

iStat Menus ——mac上显示网速的软件下载地址及注册码

在mac上显示网速的软件——iStat Menus 5: https://bjango.com/mac/istatmenus/ 注册码: Email: 982092332qq.com SN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH3S-8SGA 「注册码源于:http://www.pc6.com/mac/111587.html」

iStat Menus 6.51 mac中文版

iStat Menus for mac是一款Mac OS电脑硬件信息检测软件,安装完成后它位于“系统偏好设定”的应用程序面板&#xff0c;让您从选单列监测系统的各项丰富资讯&#xff0c;又不会占用使用者太大的桌面空间&#xff0c;提供的信息包括 CPU 使用情形、内存用量、硬盘使用情形、网络传…

iStat Menus 6 for Mac中文破解版激活方法无需激活码

iStat Menus 6 Mac 中文破解版是Mac OS平台上十分优秀的一款系统与硬件监控软件&#xff0c;通过istat menus for mac 我们可以实时掌握自己的Mac电脑情况&#xff0c;可以查看硬件温度、查看即时网速、显示CPU使用率等等&#xff0c;非常实用。小编现为大家带来istat menus ma…

istat menus 6

下载地址 安装之后&#xff0c;点击左下角的激活按钮&#xff0c;输入激活信息 Email: 982092332qq.com SN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH3S-8SGA 就这样吧