首页 > 其他分享 >如何使用C语言实现汉诺塔

如何使用C语言实现汉诺塔

时间:2023-01-19 19:32:59浏览次数:46  
标签:移动 圆盘 Hanoi C语言 char 如何 int 汉诺塔 柱上

现有3个柱子A、B、C,有n个圆盘在A柱上,要实现n个圆盘要从A柱从大到小移动到C柱。

思路:先将n-1个圆盘移动到B柱上,然后将最后一个圆盘移动到C柱上,最后将B柱上的n-1个圆盘移动到C柱。

#include <stdio.h>
void move(char A, char C, int n)
{
printf("把第%d个圆盘从%c-->%c\n", n,A, C);
}
void Hanoi(char A, char B, char C, int n)
{
if (n == 1)
{
move(A, C, n);
}
else
{
//n-1个圆盘借助C移动到B
Hanoi(A, C, B, n-1);
//最后一个圆盘从A移动到C
move(A, C, n);
//n-1个圆盘从B借助A移动到C
Hanoi(B, A, C, n - 1);
}
}
int main()
{
int n = 0;
printf("输入A柱上圆盘的个数\n");
scanf("%d",&n);
Hanoi('A', 'B', 'C', n);
return 0;
}

如何使用C语言实现汉诺塔_#include

标签:移动,圆盘,Hanoi,C语言,char,如何,int,汉诺塔,柱上
From: https://blog.51cto.com/u_15927947/6020150

相关文章

  • mac 安装好jmeter如何快速启动jmeter
    背景:mac安装好jmeter后每次启动时候都需要在终端敲命令进入jmsterbin文件中然后shjmeter,简直太麻烦啦!  步骤一:找jmster目录地址终端进入jamter文件中,pwd,然后复制......
  • c语言 打印数字金字塔
    提问: c语言。打印数字金字塔。for循环中为什么是j<i+1呢?以及如何判断这里的控制变量到底是与n有关还是与循环变量i有关呢?需要详细的解答 #include<stdio.h>voidpi......
  • c语言实现扫雷
    前言:上一篇博客我们写了三子棋小游戏,紧着这我们趁热打铁,继续巩固知识点,再来写一个更有意思的扫雷吧,想必扫雷大家都玩过,我就不做介绍了。概述:我们一样将代码分为三部分来写,主......
  • C语言运算符&优先级
    运算符优先级这一块即使你用了很久C语言,如果不刻意记忆,也是容易搞混的.C语言的运算符非常多,一共有50多种,可以分成若干类。算术运算符算术运算符专门用于算术......
  • Ant Design Table 如何动态自定义?Ant Popover 遮挡?
    项目场景:基于electron+Vue+node.js+express+mysql+evanpatchouli-mysql+Ant-Design-Vue,编写一款属于自己的轻量级MySQL数据库界面工具。问题列表如何动态......
  • Baidu权重怎么查询?如何查百度权重?
    SEO人都想了解网站在百度检索中的权重,但是网站在不同的SEO查询工具中的排名不一样,比如一个网站在爱站PC权重、站长PC权重、爱站移动权重、站长移动权重等中的排名都是不一样......
  • 如何制作win11 U盘安装介质
     001、准备一个大于8G的U盘 002、进入微软官方下载地址:https://www.microsoft.com/en-us/software-download/windows11 003、在createwindows11installation......
  • EDI文件处理失败如何汇总?
    知行之桥EDI系统在后台自动运行的时候,有时会遇到处理文件失败的情况,导致失败的原因有很多,部分客户希望把处理失败的文件都汇总起来,便于分析失败原因,减少未来再出现类似的错......
  • 如何提升企业组网管理能力?贝锐蒲公英监控告警与管理审计能力解析
    在企业协同办公需求日益增多的今天,组网已经成为了一种企业常用的技术方案,通过专业的企业网络解决方案,实现异地互访,数据互通,进而实现总部-分部、总部-一线门店/厂区的高......
  • 如何快速将应用程序提交到appStore?这篇文章告诉你
    作者简介:有iOS方面3年经验,移动端领域专家,csdn/掘金等平台优质作者,就职于广东省东莞市华勤科技技术有限公司iOS开发岗位,有过的iOS各方面的成就,擅长iOS方面的iOS上架技术等。......