递归实现含汉诺塔
#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');}