永发信息网

c语言输出7个盘的汉诺塔解决方案

答案:1  悬赏:0  手机版
解决时间 2021-03-31 22:14
c语言输出7个盘的汉诺塔解决方案
最佳答案
假设三根柱子A/B/C,要从A移动到B,有n个盘子,那么可以设函数
hanoi(int n,char A ,char B,char C);
其中:n是盘子数量,A,B,C是柱子名字
先考虑一个盘子的情况
一个盘子的时候,显然,A直接放到B就可以了
多个盘子的情况
如果多个盘子,那么不能直接从A放到B,但是可以借助C柱子
即,
1)先把n-1个盘子从A柱子借助B柱子放到C柱子;
2)把A放到B;
3)C上的n-1个盘子借助A放到B盘子
这样,完成了状态的转移
代码如下:
#include
void hanoi(int n,char A ,char B,char C)
{
    if(n==1)
        printf("%c->%c
", A,B);
    else{
        hanoi(n-1,A,C,B);
        printf("%c->%c
",A,B);
        hanoi(n-1,C,A,B);
    }
}
int main()
{
    int m;printf("input the number of diskes:");
    scanf("%d",&m);
    printf("The step to moving %d diskes:
",m);
    hanoi(m,'A','B','C');
    return 0;
}输入7,即可得到答案
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
明明很爱你,明明想靠近,但是你身边总是鲜花
最小的鲸是什么鲸?多大?
我还有没有机会了
苏州哪里可以买到原价mini?
用PS修过图之后,照片就成这样了,怎么恢复正
1983年大破天有哪些天
4399小游戏一个人拿着各种武器把另一个人打到
2014征兵定完兵可以入伍了吗?
雨果的《悲惨世界》,谁翻译的版本最好呢?是
网调是什么?
三星s6现实lp地址失败
鳌虾为什么搬石头把自己虾房的口堵上了?而且
我们平时听到的马赛曲是哪位女士主唱的?
思铂睿怎么读
简述磁感应线的特性和用途
推荐资讯
blockb2014mama的出场音乐是什么
来例假肚子很疼,血很多,颜色鲜艳是怎么回事
手机登录不了苏宁易购客户端,显示网络异常是
在施工图纸上吊筋跟附加箍筋的标注方式
1.25剩以6.4的简便方法是怎样的?
nd滤镜如何使用
皇帝在还是太子的时候,他的舅舅,叔叔。什么
比比我菜籽油怎么样
被爱分期骗了怎么办?
999…9*999...9+1999...9
某气缸在断缸后转速下降很小说明存在哪些故障
CPU原生四核是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?