读书人

递归兑现含汉诺塔

发布时间: 2012-09-07 10:38:15 作者: rapoo

递归实现含汉诺塔

#include<stdio.h>void hannota(int n ,char A,char B,char C){ if(n==1) {  //当盘子的数量为1个的时候直接从A柱子移动到C柱子上 printf("%d:%c--->%c\n",n,A,C); } else {  //将A柱子上第n-1个盘子借住C柱子移动到B  hannota(n-1,A,C,B);  //移动完成后直接将A柱子上的盘子移动到C柱子上因为A柱子上的盘子已经是最大了  printf("%d:%c--->%c\n",n,A,C);  //将B柱子上的盘子借住A柱子移动到C柱子上  hannota(n-1,B,A,C); }}int main(){ int n; printf("请输入盘子的数量:"); scanf("%d",&n); hannota(n,'A','B','C');}

读书人网 >编程

热点推荐