网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月07日
漏签
0
天
c语言吧
关注:
798,842
贴子:
4,356,052
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
16
回复贴,共
2
页
,跳到
页
确定
<<返回c语言吧
>0< 加载中...
求助汉诺塔问题
只看楼主
收藏
回复
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
主要输出的这个地方
???弄不懂
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
-
--
---
A B C
--
--- -
a b c
--- - --
a b c
-
--- --
a b c
2025-06-07 19:48:28
广告
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
该死的百度。。。。。
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
主要是代码不懂怎么写
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用递归。。。
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个求汉诺塔的代码我知道是用递归,是输出的时候1,2,1不懂
#include<stdio.h>
int main()
{
void hanoi(int n,char one,char two,char three);
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');}
void hanoi(int n,char one,char two,char three)
{
void move(char x,char y);
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y)
{
printf("Move disk %d from %c to %c",n,x,y);
}
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
1,2,1代表盘子的编号。。。。。
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
是啊,如果有3个盘子,每次数又不一样了啊,那求这个1,2,3.。。的用什么方法呢
2025-06-07 19:42:28
广告
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
n那就是盘子编号,只要输出就行了。。。
而且你的move函数有问题,少传了一个n参数。。。你的n是局部变量。。。。
sincerefly
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
# include <stdio.h>
int main(void)
{
void hanoi(int n, char one, char two, char three);//对hanoi函数的声明
int m;
printf("input the number of diskes:");
scanf("%d", &m);
printf("The step to move %d diskes:\n", m);
hanoi(m, 'A', 'B', 'C');
return 0;
}
void hanoi(int n, char one, char two, char three)//定义hanoi函数
//将n个盘从one座借助two座,移动到three座
{
void move(char x, char y);//对move函数的声明
if(n==1)
move(one, three);
else
{
hanoi(n-1, one, three, two);
move(one, three);
hanoi(n-1, two, one, three);
}
}
void move(char x, char y)
{
printf("%c-->%c\n", x, y);
}
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个没有达到我的要求啊
轻抚灬那缕浮华
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
少了什么?怎么说
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
void move(char x,char y,int n)
{
printf("Move disk %d from %c to %c",n,x,y);
}
调用的时候应该是move(one, three, n)
就行了。。。
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
if(n==1)
move(one, three, 1);
else
{
hanoi(n-1, one, three, two);
move(one, three, n);
hanoi(n-1, two, one, three);
}
}
2025-06-07 19:36:28
广告
姜太公__榕
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
if(n==1)
move(one, three, 1);
else
{
hanoi(n-1, one, three, two);//将1到(n-1)号的所有盘子移到第2根柱子
move(one, three, n);//将第n个盘子移到第3个柱子
hanoi(n-1, two, one, three);//将1到(n-1)号的所有盘子移到第3根柱子
}
}
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示