输入一个整数n,
输出n个汉诺塔移动的步骤
#include<stdio.h>
void move(int n,char from,char buf,char to);
void main(){
int n;
printf("Input:");
scanf("%d",&n);
move(n,'A','B','C');//ABC分别代表三个塔柱
}
void move(int n,char from,char buf,char to)
{
if(n==1) //只需要移动一个盘子
printf("%c-->%c\n",from,to); //只需将盘子从from移动到to即可
else
{
move(n-1,from,to,buf); //先将n-1个盘子从from移动到buf,to做缓冲
printf("%c-->%c\n",from,to);//再将一个盘子从from移动到to
move(n-1,buf,from,to); //最后将n-1个盘子从buf移动到to,from做缓冲
}
}