社区
非技术区
帖子详情
四个盘的汗诺塔问题!
helei123a
2005-01-03 10:39:08
不懂,求解!
...全文
168
11
打赏
收藏
四个盘的汗诺塔问题!
不懂,求解!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuelong_zl
2005-01-05
打赏
举报
回复
先mark
fct0906
2005-01-05
打赏
举报
回复
最好不要把作业拿出来,
下午有空的话写个看看.
homtipo
2005-01-05
打赏
举报
回复
没有意思的说,只要是讲递归就肯定有这个例子,搞得经典化了
melonliu
2005-01-05
打赏
举报
回复
很多书上都有汉诺塔的递归实现样例啊,非递归实现还可以考虑帮你一下
xuxinmmy
2005-01-05
打赏
举报
回复
#include<stdio.h>
void move(char x,char y)
{ printf("%c-->%c\n",x,y); }
void hanoi(int n,char A,char B,char C)
{ //将n个盘从A座借助B座移到C座
if(n==1) move(A,C);
else
{
hanoi(n-1,A,C,B);
move(A,C);
hanoi(n-1,B,A,C);
}
}
void main()
{
int num=0;
printf("\n 汉诺塔\n\n");
printf("A-->B\n表示将A座最上面的盘子移到B座\n\n");
printf("输入盘子数量:");
scanf("%d",&num);
printf("移动%d个盘子的步骤如下:\n",num);
hanoi(num,'A','B','C');
printf("移动完毕!\n\n");
}
自己的作业自己做!!刚改成C语言,慢了
fct0906
2005-01-05
打赏
举报
回复
呵呵,楼上手脚很快啊
fct0906
2005-01-05
打赏
举报
回复
typedef stack<int> Tastack;
//assume source is correct initialized.
void Hanoi(int n, Tastack& source, Tastack& tmp, Tastack& dest){
if(n == 1){
dest.push(source.pop());
return;
}else if(n == 2){
tmp.push(source.pop());
dest.push(source.pop());
dest.push(tmp.pop());
}else{
Hanoi(n-1, source, dest, tmp);
dest.push(source.pop());
Hanoi(n-1, tmp, source, dest);
}
}
idler
2005-01-05
打赏
举报
回复
n个塔都是一样的。。。
把n-1个盘子经C移到B,把最大那个移到C,然后把n-1个盘子经A移到C。
swimmer2000
2005-01-05
打赏
举报
回复
void move(int i,char a,char b)
{
printf("move %d from %c to %c",i,a,b); //i是盘子的编号
}
hanoi(int n,char x,char y,char z) //n是盘子的个数
{
if n==1
move(1,x,z);
else
{
hanoi(n-1,x,z,y);
move(n,x,z);
hanoi(n-1,y,z);
}
}
dongyuanzhang
2005-01-05
打赏
举报
回复
关于递归的算法.
dongyuanzhang
2005-01-05
打赏
举报
回复
书上网上都有,自己找阿!就是汗诺塔问题阿!
四柱汉诺塔代码(c++)
四柱汉诺塔
问题
是一个经典的递归算法
问题
,源自古代印度的一个传说,它涉及三个柱子和若干个大小不一的圆
盘
。在这个
问题
中,目标是将所有圆
盘
从一个柱子移动到另一个柱子,但每次只能移动一个
盘
子,并且任何时候大...
四柱汉诺塔_四柱汉诺塔_
这使得解决策略更为复杂,因为
盘
子可以在
四个
柱子之间移动。通常,四柱汉诺塔的
问题
可以转化为一系列的三柱汉诺塔
问题
。在解决四柱汉诺塔的过程中,我们可能需要利用第四根柱子作为临时存储空间,以便更有效地在源柱...
Hanoi Tower 汉诺塔
问题
/c
汉诺塔
问题
是一个经典的递归
问题
,在计算机科学和数学领域都有着广泛的应用。它不仅是一个编程练习题,也是理解递归思想和分治策略的一个很好例子。 首先,我们来了解汉诺塔
问题
的基本概念。汉诺塔(Hanoi Tower)...
汉诺塔
问题
C++
汉诺塔
问题
是一个广泛存在于计算机科学和编程教学中的经典难题,它通过一个简单的游戏向我们展示了递归解决
问题
的力量。
问题
的核心在于通过一系列有序的动作将一系列大小不一的圆
盘
从一根柱子移动到另一根柱子,同时...
汉诺塔
问题
的详细讲解以及实现代码
汉诺塔
问题
是一个经典的递归
问题
,源自印度的古老传说,它涉及到三个柱子和一组大小不一的圆
盘
。目标是将所有圆
盘
从一个柱子(称为起始柱)移动到另一个柱子(目标柱),同时遵循以下规则: 1. 任何时候,较大的...
非技术区
15,445
社区成员
58,115
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章