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

费曼学习法实例--汉诺塔

参考程序:

#include <iostream>
using namespace std;long long step = 0; // 全局步骤计数void movePrint(int disk, char from, char to) {cout << "步骤" << ++step << ": 盘子" << disk << " 从 " << from << " -> " << to << '\n';
}// 递归函数:把 n 个盘子从 from 借助 aux 移到 to
void Hanoi(int n, char from, char aux, char to ) {if (n == 1) {// 基准情况:最小问题直接解movePrint(1, from, to);return;}// 1) 先把上面 n-1 个盘子从 from 移到 aux(借助 to)Hanoi(n - 1, from, to, aux);// 2) 把第 n 个(最大的)盘子从 from 移到 tomovePrint(n, from, to);// 3) 再把 n-1 个盘子从 aux 移到 to(借助 from)Hanoi(n - 1, aux, from, to);
}int main() {int n;cout << "请输入盘子个数 n(建议 n ≤ 10 观察输出):";cin >> n;cout << "移动 " << n << " 个盘子的步骤如下:\n";Hanoi(n, 'A', 'B', 'C'); // 把 A 柱的 n 个盘子借助 B 移到 Ccout << "总共移动步骤: " << step << '\n';return 0;
}

http://www.xdnf.cn/news/20485.html

相关文章:

  • MCP Token超限问题解决方案
  • JDK1.8与1.9哪个好?
  • js逆向Webpack模块加载机制解析:从数组到JSONP
  • Linux 网络流量监控 Shell 脚本详解(支持邮件告警)
  • 基于FPGA的汉明码编解码器系统(论文+源码)
  • 设计模式Design Patterns:组合Composite、命令Command、策略Strategy
  • 【关于线程的一些总结】
  • 进程状态深度解析:从操作系统原理到Linux实践
  • PCB设计布局核心准则
  • 【左程云算法03】对数器算法和数据结构大致分类
  • FPGA会用到UVM吗?
  • Context Engineering survey
  • GraphQL API 性能优化实战:在线编程作业平台指南
  • EG1160 SOP16 高压大电流 半桥驱动芯片
  • 从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
  • 服务器防黑加固指南:SSH端口隐藏、Fail2ban与密钥登录
  • docker run 命令,不接it选项,run一个centos没有显示在运行,而run一个nginx却可以呢?
  • 【LeetCode热题100道笔记】腐烂的橘子
  • Typora处理markdown文件【给.md文档加水印】
  • 使用 TCMalloc 检查内存使用情况和内存泄漏
  • 残差网络 迁移学习对食物分类案例的改进
  • STL模版在vs2019和gcc中的特殊问题
  • STM32项目分享:基于物联网的健康监测系统设计
  • 基于STM32的智能宠物屋系统设计
  • 人工智能学习:什么是seq2seq模型
  • Java全栈开发工程师的面试实战:从基础到复杂场景的技术探索
  • Compose笔记(四十九)--SwipeToDismiss
  • RabbitMQ工作模式(下)
  • 贪心算法应用:蛋白质折叠问题详解
  • Eureka与Nacos的区别-服务注册+配置管理