#include<stdio.h> //汉诺塔问题 void hannuota(int n,char a,char b,char c); int main(void){ char ch1 = 'A'; char ch2 = 'B'; char ch3 = 'C'; int n = 0; printf("请输入要移动的盘子的个数:"); scanf("%d",&n); hannuota(n,ch1,ch2,ch3); return 0; } /* 如果是一个盘子 直接将A柱子上的盘子 从A移到C 否则 先A柱子上的n-1个盘子借助C移到B 再将A柱子上的最后一个盘子从A移到C 然后将B柱子上的n-1个盘子借助A移到C */ //将盘子从a借助b移到c void hannuota(int n,char a,char b,char c){ if(n == 1){ printf("将编号%d盘子从%c移到%c\n",n,a,c); }else{ //先A柱子上的n-1个盘子借助C移到B hannuota(n-1,a,c,b); //再将A柱子上的最后一个盘子从A移到C printf("将编号%d盘子从%c移到%c\n",n,a,c); //然后将B柱子上的n-1个盘子借助A移到C hannuota(n-1,b,a,c); } }
汉诺塔问题c语言实现
原创dlb15736130376 ©著作权
©著作权归作者所有:来自51CTO博客作者dlb15736130376的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:静态循环队列c程序演示
下一篇:maven规范:ssm框架整合
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
函数递归经典题目——汉诺塔,青蛙跳台阶
递归常见例题——斐波那契、汉诺塔、青蛙跳台阶
递归 n的阶乘 i++ -
汉诺塔问题(C语言)
汉诺塔问题描述格式样例题解及详细注释51,615这是一个天文数字,若每一微秒可能计算(并不输出)一次移动
数据结构 c语言 #include 输出格式 解决方法 -
汉诺塔问题C语言递归
汉诺塔问题C语言递归
插入图片 bc 代码实现 -
【C语言】汉诺塔问题(图文详解)
C语言汉诺塔及详细图文展示
c语言 开发语言 游戏 外包 #include