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

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

谢过啦
...全文
290 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
  • 打赏
  • 举报
回复
怎么没有人回复?
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

69,369

社区成员

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

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