递归之汉诺塔

匿名 (未验证) 提交于 2019-12-03 00:22:01

用C语言实现。

#include <stdio.h> #include <stdlib.h>  void hannuota(int n,char A,char B,char C);  void hannuota(int n,char A,char B,char C){     /*       如果是一个盘子,直接将盘子从A移动到C     否则,先将A柱子上的n-1个盘子借助C移到B       最后将B柱子上的n-1个盘子借助A移到C     */     if(n == 1){         printf("将编号为%d的盘子直接从%c柱子移动到%c柱子\n",n,A,C);     }else{         hannuota(n-1,A,C,B);         printf("将编号为%d的盘子直接从%c柱子移动到%c柱子\n",n,A,C);         hannuota(n-1,B,A,C);     } }  int main() {     char ch1 = 'A';     char ch2 = 'B';     char ch3 = 'C';     int n;      printf("请输入要移动盘子的个数:\n");     scanf("%d",&n);      hannuota(n,'A','B','C');     return 0; } 

文章来源: 递归之汉诺塔
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!