在1下面切一刀,不可行
在N上面切一刀,可行:
代码:
public class 汉诺塔游戏 {
public static void main(String[] args) {
// TODO Auto-generated method stub
printHanoTower(5,"A","B","C");
}
static void printHanoTower(int N,String from,String to,String help) {
if(N==1) {
System.out.println("move "+N+" from "+from+" to "+to);
return;
}
printHanoTower(N-1,from,help,to);//先把前N-1个盘子挪到辅助空间上去
System.out.println("move "+N+" form "+from+" to "+to);//N可以顺利到达
printHanoTower(N-1,help,to,from);//让N-1从辅助空间回到源空间上去
}
}