社区
非技术区
帖子详情
四个盘的汗诺塔问题!
helei123a
2005-01-03 10:39:08
不懂,求解!
...全文
148
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
打赏
举报
回复
书上网上都有,自己找阿!就是汗诺塔问题阿!
用递归实现汉诺塔
问题
一个简单的用递归方法实现汉诺塔的
问题
,主要练习递归方法
汉诺塔
问题
的解决方法.pdf
汉诺塔
问题
的解决方法 在以上代码中,`hanoi`函数用来解决汉诺塔
问题
。它接受
四个
参数:
盘
子的数量 `n`,起始杆 `from_rod`,目标杆 `to_rod`,和辅助杆 `aux_rod`。当`n`等于1时,表示只有一个
盘
子需要移动,直接将...
汉诺塔的c语言实现代码
汉诺塔的c语言版,程序简单易行,主要用递归思想来实现的
扩展汉诺塔
问题
源代码
如果塔的个数变为a,b,c,d
四个
,现要将n个圆
盘
从a全部移动到d,移动规则不变,求移动步数最小的方案。
汉诺塔练习——python(2.番外篇)
相信大家都曾玩过汉诺塔这个游戏,可是呢,往往就在第六第七个就写不下去了,甚至就在第四第五个,就不知道该怎么办了,下面,我就用python来解决这个
问题
。 游戏规则 A,B,C三个圆柱,分别为初始位,过渡位,目标...
非技术区
15,440
社区成员
58,167
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章