社区
非技术区
帖子详情
四个盘的汗诺塔问题!
helei123a
2005-01-03 10:39:08
不懂,求解!
...全文
192
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
打赏
举报
回复
书上网上都有,自己找阿!就是汗诺塔问题阿!
一诺365金税
盘
开票软件安装_有
问题
!要远程!看这里!(附一诺365平台下载安装说明)...
获取远程服务1运行一诺365平台一诺365运行:双击桌面“一诺365”的图标;2插入金税
盘
自动登录登录一诺365:插入金税
盘
自动登录,也可不插入金税
盘
,手动登录3点击“我要远程”我要远程:登录后,点击一诺365界面下方的”我要远程“4登录咨询远程服务:登录后,点左侧“客服”按钮,选择要咨询的“
问题
分类”,即可进入排队列表,等待工作人员接入即可。 一诺365平台集成了防...
Hanoi塔算法思想解释
求
汗诺塔
N个
盘
子须几次移动时得到了下面的递推公式: a[1] = 1; a[n] = a[n-1] * 2 + 1; 请教通项公式? a[1] = 1; a[n] = a[n-1] * 2 + 1; 可得a[i]= 2^i-1; 证明,采用数学归纳法: 1、猜想a[i]= 2^i-1 2、当i=1时,显然成立。 3、假设i=k时成立,即 a[k] =
C
盘
不够了怎么办!将其他
盘
空间怎么分给C
盘
!
电脑用着用着,突然一天看到C
盘
红了,或者系统提示C
盘
满了,对系统运行会造成影响了。只靠清理缓存,最多只是暂时缓解,不是根本解决,再看看其他
盘
,还有很多空间,要重新分区么?不用,这里我们详细解答,如何将其他
盘
的空间分给C
盘
! 工具/原料 电脑 win7 系统 方法/步骤 1 在我的“桌面”上,找到“计算机”(XP里面叫做:我的电脑),右键点击,弹出菜单,选择“管理...
多重循环的一些例子!字母塔,三角形塔,菱形塔,空心菱形塔,9*9乘法表等!
多重循环的一些例子!字母塔,三角形塔,菱形塔,空心菱形塔,9*9乘法表等! 1,使用嵌套循环产生下列图案: #include #define NUM 5 /* int main (void) { char row,line,ch; // 定丿三个字符发量 ch = 'F'; // 将 发量 F 赋值给 ch for (row = ch; row >= 'A';row-- ) // 将 ch 赋值给 row;如果row>A row--
fzu 1036 四塔
问题
四塔
问题
【
问题
描述】 “汉诺塔”,是一个众所周知的古老游戏。现在我们把
问题
稍微改变一下:如果一共有4根柱子,而不是3根,那么至少需要移动
盘
子多少次,才能把所有的
盘
子从第1根柱子移动到第4根柱子上呢? 为了编程方便,您只需要输出这个结果mod 10000的值。 【要求】 【数据输入】该题含有多组测试数据,每组一个正整数n。(0 【数据输出】一个正整数,表示把n个
盘
子从第1根柱子移动到第
非技术区
15,445
社区成员
58,111
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章