原题链接:数据结构-n阶Hanoi塔问题 - C语言网 (dotcpp.com)
#include <stdio.h>
void Hanoi (int, char, char, char);
//定义num计算移动次数
int num=1;
int main(){
int n,i;
while (scanf ("%d",&n) !=EOF){
num=1;
Hanoi(n,'X','Y','Z');
printf("\n");
}
return 0;
}
void Hanoi (int n, char x, char y, char z){
if (n==1){
printf("%2d. Move disk 1 from %c to %c\n",num++,x,z);
}
else{
Hanoi(n-1,x,z,y);
printf("%2d. Move disk %d from %c to %c\n",num++,n,x,z);
Hanoi(n-1,y,x,z);
}
}