哪位大侠给讲讲汉若塔 思想,

xkyylly 2003-10-16 09:26:56
还有那个算法也不太明白,

谢过啦
...全文
286 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
antijpn 2003-10-17
  • 打赏
  • 举报
回复
最上面的一行错了,应该是count,更正一下
antijpn 2003-10-17
  • 打赏
  • 举报
回复
递归阿,递归,最简单了
int coutn;
void astep(int m,char from,char to)
{
printf("%3d %5d: %c--->%c\n",++count,m,from,to);
}
void move(int n,char f,char t,char u)
{
if(n==1)
astep(1,f,t);
else
{
move(n-1,f,u,t);
astep(n,f,t)
move(n-1,u,f,t);
}
}
void main()
{
int n;
count=0;
printf("Enter n:");
scanf("%d",&n);
move (n,'A','C','B');
}

这个应该可以用的
killua1213 2003-10-17
  • 打赏
  • 举报
回复
用递归算法!
假定有3个杆a,b,c,目的是把盘子从a杆全部移到b杆上,把模拟这一过程的算法称为hanoi(n,a,b,c)。那么:
第一步:先把n-1个盘子设法借助b杆放到c杆,记作hanoi(n-1,a,c,b);
第二步:把第n个盘子从a杆移到b杆;
第三步:把c杆上的n-1个盘子借助a杆移到b杆,记作hanoi(n-1,c,b,a)。
hanoi函数的执行过程可简写为:
hanoi(n-1,a,b,c)
{
hanoi(n-1,a,c,b);
NO n:a->b; /*把第n个盘子从a杆移到b杆*/
hanoi(n-1,a,c,b);
}
Darkay_Lee 2003-10-17
  • 打赏
  • 举报
回复
请查一下以前的帖子!有讨论过的。
xkyylly 2003-10-17
  • 打赏
  • 举报
回复
哈哈, ,今天终于明白也………… 结贴 ………………hohohoho
xkyylly 2003-10-17
  • 打赏
  • 举报
回复
不行啊, 不信你试一下,当 n = 3 时,这个 程序 是不成立的,

还要考虑盘子大小问题啊,
xkyylly 2003-10-16
  • 打赏
  • 举报
回复
没有人了吗,

帮一下忙啦
xkyylly 2003-10-16
  • 打赏
  • 举报
回复
那个图我明白…………
xkyylly 2003-10-16
  • 打赏
  • 举报
回复
lingar(紫晶灵儿) 还不明白啊, 那个图 哪里 递归了??
lingar 2003-10-16
  • 打赏
  • 举报
回复
不好意思
(7)上面的3 是*(6)的2下面的
xkyylly 2003-10-16
  • 打赏
  • 举报
回复
能不能详细点啊, 要分可以再加啊,
lingar 2003-10-16
  • 打赏
  • 举报
回复
1借用2搬到3 再1借用3到2
这样吧 3层的
看看
1 2 3 1 2 3 1 2 3
(1) (2) (3)
1
2 1
3 3 2 1 3 2

(4) (5) (6)

1 2
2 3 1 2 3 1 3

(7)
1
2
3

就这样,不怎么好看
但就是这个意思
Anorld 2003-10-16
  • 打赏
  • 举报
回复
这是个递归问题,A,B,C三盘,要想把n从A移到C,首先要把n-1,移到B,再把最大盘移到C
接着就是递归了,将n-1从B移到C,中间要A周转

思想是这样,结合算法程序,应该能看得懂
zhuixe 2003-10-16
  • 打赏
  • 举报
回复
递规的思想,汉若塔讲起来有点麻烦,
比如求N!
N!=N×(N-1)!

需要递规调用求阶乘函数,在乘上N即可,如:
int Factor(int N) //N不可太大呀,否则N!超过了整数的范围
{
return N*Factor(N-1);
}
xiaohaozi0083 2003-10-16
  • 打赏
  • 举报
回复
你有没有看过老谭的那本c程序设计阿?
P161页,那上面说的很清楚啊。
xkyylly 2003-10-16
  • 打赏
  • 举报
回复
怎么没有人回复?

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧