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

Day6C语言前期阶段练习之汉诺塔问题

递归思维要点

理解汉诺塔递归的关键:

  1. 分解问题:将n个盘子的问题分解为:

    • 移动n-1个盘子

    • 移动1个最大的盘子

    • 再移动n-1个盘子

  2. 基本情况:当只有一个盘子时,直接移动。

#include <stdio.h>// 汉诺塔递归函数
void hanoi(int n, char from, char to, char aux) {// 基本情况:只有一个盘子时,直接移动if (n == 1) {printf("将盘子 %d 从 %c 移动到 %c\n", n, from, to);return;}// 递归步骤:// 1. 将n-1个盘子从起始柱移动到辅助柱hanoi(n - 1, from, aux, to);// 2. 将最大的盘子从起始柱移动到目标柱printf("将盘子 %d 从 %c 移动到 %c\n", n, from, to);// 3. 将n-1个盘子从辅助柱移动到目标柱hanoi(n - 1, aux, to, from);
}int main() {int n;printf("请输入汉诺塔的盘子数量: ");scanf("%d", &n);printf("汉诺塔的移动步骤:\n");hanoi(n, 'A', 'C', 'B');  // A是起始柱,C是目标柱,B是辅助柱getchar();return 0;
}

http://www.dtcms.com/a/506628.html

相关文章:

  • Apache Spark 集群部署与使用指南
  • 基于3D LiDAR的作物排检,用于在不同种植密度下成熟时的大豆
  • Python使用Medical Information Dataset实战2025.07版(上)
  • 基因组学中的深度学习!
  • 基于容器适配器模式的 Stack 与 Queue 实现:复用底层容器的优雅设计
  • Kafka面试精讲 Day 26:Kafka集群部署与配置
  • 73_基于深度学习的水面漂浮垃圾检测系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 在JavaScript中,清除 Canvas 画布上的内容
  • 方便做简笔画的网站或软件公司人员管理系统
  • SQL之参数类型讲解
  • CTFSHOW—WEB5
  • UU远程深度测评:重构远程控制体验的“无套路”标杆
  • 提升 iOS 26 系统流畅度的实战指南,多工具组合监控
  • vue3:vue3 + elementplus + pinia实现js的XMLHttpRequest 下载功能。
  • 如何在macOS上免密登录阿里云ECS服务器
  • 把“天猫”装进 JVM:Java 关键词商品爬虫从 0 到 1(含完整可运行代码)
  • tar打包过滤指定目录指南
  • 塘厦镇住房规划建设局网站wordpress主题生成
  • 5-SpringCloud-服务链路追踪 Micrometer Tracing
  • 网站怎样做谷歌推广没有网站怎么做淘宝客
  • 【C/C++基本功】union联合体彻底详解
  • 万字 Apache ShardingSphere 完全指南:从分库分表到分布式数据库生态
  • WebPages PHP:深入理解与高效实践
  • 数据结构-滑动窗口三题
  • 做黑网站吗怎么建设营销型网站
  • 免费企业网站程序关注love石家庄公众号微信
  • 如何进行网站开发网站开发郑州
  • 东营建网站wordpress商城汉化主题
  • 合肥昱天建设有限公司网站2016手机网站制作规范
  • 网站制作 青岛seo工具下载