1. 程式人生 > >漢諾塔問題

漢諾塔問題

data [] ews void ring script 又能 scrip spl

對於上面把問題抽象出來的那段描寫敘述。對於n > 1的時候,又能夠抽象(換成“總結”這個詞會沒那麽大壓力嗎?)出這3步:
(1)、將底盤n以上的環(n-1個)移動到B
(2)、將底盤n從A移動到C
(3)、將B上的環(n-1個)移動到C
當中第1步和第3步的步數是一樣的,由於環的數量一樣(n-1個),僅僅是目標的柱子不同而已。

public class TowerApp {
    /**
     * @param args
     */
    static int nDisks=3;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
doTowers(nDisks,‘A‘,‘B‘,‘C‘); } /** * @param topN 要移動盤子的數目 * @param from 源塔座 * @param inter 中間塔座 * @param to 目標塔座 */ public static void doTowers(int topN,char from,char inter,char to){ if(topN==1){ System.out.println("Disk1 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); } } }
‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); });

    漢諾塔問題