有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子C上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方
#include <iostream>
using namespace std;
void hanoi(int num, char a, char b, char c){
if (num == 1){
cout << num << ":"<< a << "->" << c << endl;
}
else{
hanoi(num - 1, a, c, b);
cout << num << ":"<< a << "->" << c << endl;
hanoi(num - 1, b, a, c);
}
}
void hanioC(int num, char a, char b, char c){
if (num == 1){
printf("%d: %c -> %c\n", num, a, c);
}
else{
hanioC(num - 1, a, c, b);
printf("%d: %c -> %c\n", num, a, c);
hanioC(num - 1, b, a, c);
}
}
int main(){
hanoi(3, 'A', 'B', 'C');
cout << endl;
hanioC(3, 'A', 'B', 'C');
return 0;
}