#include<stdio.h> //汉诺塔问题 void hannuota(int n,char a,char b,char c); int main(void){ char ch2 = 'A'; char ch3 = 'B'; char ch4 = 'C'; int n = 0; printf("请输入要移动的盘子的个数:"); scanf("%d",&n); hannuota(n,ch2,ch3,ch4); 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); } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。