问题:将原柱n个圆盘移到目的柱。
算法:
1)将原柱最上面n-1个圆盘移到辅助柱(与原问题相同)。
2)将第n个圆盘从原柱移到目的柱。
3)将辅助柱n-1个圆盘移到目的柱(与原问题相同)。
void move(char from, char to){
println("Move from" + from + "to" + to);
}
void hanoi(int n, char from, char to, char aux){
if(n==1){
move(from,to);
returnl;
}
//将原柱最上面n-1个圆盘移到辅助柱
hanoi(n-1, from, aux, to);
//将第n个圆盘从原柱移到目的柱
move(from,to);
//将辅助柱n-1个圆盘移到目的柱
hanoi(n-1, aux, to, from);
}