汉诺塔算法步骤解析

#include<stdio.h>voidhanoi(intn,charA,charB,charC){if(n==1){printf("Movesheet%dfrom%c... #include <stdio.h>
void hanoi(int n, char A, char B, char C) {
if(n == 1) {
printf("Move sheet %d from %c to %c\n", n, A, C);
}
else {
hanoi(n-1, A, C, B);
printf("Move sheet %d from %c to %c\n", n, A, C);
hanoi(n-1, B, A, C);
}
}
int main() {
int n;
printf("请输入盘数:");
scanf("%d", &n);
hanoi(n, 'A', 'B', 'C');
return 0;
}
如果n=3时,第三步我就不理解了,也就是执行到hanoi(n,B,A,C)这步,这个时候为什么A=‘C’,B='A',C='B'了
求n=3时候每步骤的解析。
是执行到hanoi(n-1, B, A, C);这步,写错了
展开
 我来答
BachelorPig
2013-08-06 · TA获得超过187个赞
知道小有建树答主
回答量:192
采纳率:80%
帮助的人:138万
展开全部
这是一个递归的过程,你要自己搞个简单例子摆一摆,再看看我的解释就明白了

hanoi(n-1, A, C, B);//将n-1个盘通过c从a移到b
printf("Move sheet %d from %c to %c\n", n, A, C);//将第n个盘从a移到c
hanoi(n-1, B, A, C);//将n-1个盘通过a从b移到c
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔方还原最简单的方法
2021-03-19 · TA获得超过1161个赞
知道答主
回答量:104
采纳率:100%
帮助的人:5.3万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式