publicclassMainClass{publicstaticvoidmain(String[] args){int nDisks =3;doTowers(nDisks,'A','B','C');}publicstaticvoiddoTowers(int topN,char from,char inter,charto){if(topN ==1){System.out.println("Disk 1 from "+ from +" to "+to);}else{doTowers(topN -1, from,to, inter);System.out.println("Disk "+ topN +" from "+ from +" to "+to);doTowers(topN -1, inter, from,to);}}}
结果
上面的代码示例将产生以下结果。
Disk1 from AtoCDisk2 from AtoBDisk1 from CtoBDisk3 from AtoCDisk1 from BtoADisk2 from BtoCDisk1 from AtoC
Move1 from 1to3Move2 from 1to2Move1 from 3to2Move3 from 1to3Move1 from 2to1Move2 from 2to3Move1 from 1to3Move4 from 1to2Move1 from 3to2Move2 from 3to1Move1 from 2to1Move3 from 3to2Move1 from 1to3Move2 from 1to2Move1 from 3to2Move5 from 1to3Move1 from 2to1Move2 from 2to3Move1 from 1to3Move3 from 2to1Move1 from 3to2Move2 from 3to1Move1 from 2to1Move4 from 2to3Move1 from 1to3Move2 from 1to2Move1 from 3to2Move3 from 1to3Move1 from 2to1Move2 from 2to3Move1 from 1to3