汉诺塔问题

可参考视频:https://www.bilibili.com/video/av18710547/?p=34

 

汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?

问题:有X,Y,Z三根柱子,在X柱子上从下往上按照大小顺序放着64片圆盘。把这64个圆盘从X柱子上摆放到Z柱子上,并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?


 

复制代码
 1 #include <stdio.h>
 2 
 3 void Move(int n, char X, char Y, char Z)    //从上到下依次为第1,第2...第n个盘子
 4 {
 5     if(n == 1)
 6         printf("%c-->%c\n", X, Z);
 7     else
 8     {
 9         Move(n-1, X, Z, Y);            //将n-1个盘子从X 借助Z 移动到Y上
10         printf("%c-->%c\n", X, Z);     //将第n个盘子从X上直接移动到Z上  
11         Move(n-1, Y, X, Z);            //将n-1个盘子从Y 借助X 移动到Z上
12     }
13 }
复制代码

 

posted @   拾月凄辰  阅读(170)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩