ハノイの問題の塔 - 再帰的なソリューション

問題のI.概要:

  のみ:Aは、上段A小さいが大きいn個のディスクを有するように積層し、前記権利が、B、Cの3つの列は、ディスクが今Cが一つだけ原則間、上昇させ、カラムAカラム上で必要とされるために残さナンバープレート、ステップと可動の動きを求め、プラッタ上の小さなプレートができないに移動することができ 

  

 

第二に、アイデア

                                                                        

 

 

今だけのポストを前提に、プレート
                    プレート番号1 - > C
列A上の2枚のプレートが存在すると仮定
                    プレート番号1 - > B(二次効果)
                    プレート番号2 - > C
                    プレート番号1 - > C
全体Aの最下層として、全体として列A上の3枚のプレート、トップ二つのプレートが存在すると仮定
                    全体的に、すべての料理 - > B、
                     底板 - > C、
上記プレートBは現在、2と同じであり、二つのプレートカラム条件、今Aカラム(空の)補助カラムとして、上記の動作が繰り返されますアナロジー

第三に、コードの実装

  

パブリック 静的 ボイド HanNuo(INT N、列A、列B、列C){
         場合(N == 1 ){
            (NのSystem.out.println " - >" + A + "から" + + C)。
            リターン;
        }
        HanNuo(N -1、A、C、B); // N-1補助塔Bの全体、n-1個の動きとして 
        A + + "から"のSystem.out.println(N + " - "" + C); // CまでのN個の移動 
        。HanNuo(1-N、B、C); // などのn-1 Bの皿、補助カラムとして 
    }

おすすめ

転載: www.cnblogs.com/han200113/p/12149570.html