汉诺塔
请编写一个程序,对于一个有n个盘子的汉诺塔,列举将这n个盘子从柱子A移动到柱子C需要的所有移动步骤,每个步骤占一行。例如,将一个盘子从A移动到C,即表示为:
A to C
输入一个数n,表示圆盘的个数。
输入样例
3
输出样例 A to C
A to C
A to B
C to B
A to C
B to A
B to C
A to C
代码如下:
#include <iostream>
#include <stdio.h>
using namespace std;
void move(char from,char to){
cout <<from<<" "<<"to"<<" "<<to<<endl;
}
void hanoi(char from,char to,char by,int n){
if(n==0){
return;
}
hanoi(from,by,to,n-1);
move(from,to);
hanoi(by,to,from,n-1);
}
int main(){
int n; cin >>n;
hanoi('A','C','B',n);
return 0;
}