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

C语言求解汉诺塔问题

完整代码:

/*Hanoi(汉诺)塔问题。这是一个古典的数学问题:古代有一个梵塔,塔内有 3 个 座 A,B,C,开始时 A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有一个老
和尚想把这 64 个盘子从 A 座移到 C 座,但每次只允许移动一个盘子,且在移动过
程中在 3 个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用 B 座,要
求编程序打印出移动的步骤。*/
#include<stdio.h>//n为汉诺塔的层数,a为初始柱,b为辅助柱,c为目标柱
void Hanoi(int n,char a,char b,char c){//当只有一层时,直接把a柱的盘子移到c柱if (n==1){printf("%c->%c\n",a,c);}else{//借助c柱,让a柱的盘子移动到b柱Hanoi(n-1,a,c,b);//因为此时移动到b柱上有n-1层,此时a柱上还剩一个最大的盘子//让最大的盘子从a柱移动到c柱Hanoi(1,a,b,c);//此时问题就变成了把b柱上所有盘子(n-1个)借助a柱移动到c柱Hanoi(n-1,b,a,c);}
}
int main()
{int n;printf("请输入初始时盘子个数:\n");scanf("%d",&n);Hanoi(n,'A','B','C');return 0;
}

运行截图:

http://www.lryc.cn/news/199607.html

相关文章:

  • 安装LSF
  • 百度的新想象力在哪?
  • Linux使用rpm包安装mysql5.7
  • LLDB 三种输出方式 对比及原理探索
  • 基于架构软件设计-架构真题(五十八)
  • jvm实现的锁优化
  • JMeter做http接口功能测试
  • 【安全体系架构】——SIEM架构
  • nginx acess日志找不到访问记录问题
  • canvas使用
  • PMP认证考试证书领取的通知
  • 华为云HECS云服务器docker环境下安装nacos
  • Oracle数据库修改序列,Oracle中的主键值和序列中的值对应不上时的处理方式
  • Verilog基础:避免混合使用阻塞和非阻塞赋值
  • 04、MySQL-------MyCat实现分库分表
  • 开源软件-禅道Zentao
  • Linux生产者消费者模型
  • 【Qt-20】Qt信号与槽
  • “智能+”时代,深维智信如何借助阿里云打造AI内容生成系统
  • selenium 自动化测试——WebDriver API
  • 【实战】学习 Electron:构建跨平台桌面应用
  • Python开发之二维数组空缺值的近邻填充
  • vue使用pdf 导出当前页面,(jspdf, html2canvas )
  • 【oracle删除表 回滚操作】
  • Vue3 + TypeScript
  • 软件测试/测试开发丨南科大计算机系本科生获“火焰杯”软件测试高校就业选拔赛一等奖
  • 访问 github 问题解决方法
  • 供应QCA8075原装芯片
  • 在Maven中配置代理服务器的详细教程
  • QStringListModel