JavaScript算法實現之漢諾塔(Hanoi)


目前前端新手,看到的不喜勿噴,還望大神指教。

隨着Node.js,Angular.js,JQuery的流行,點燃了我學習JavaScript的熱情!以后打算每天早上跟晚上抽2小時左右時間將經典的算法都用JS來實現,加快學習JS的步伐(用這個辦法方便跟自己以前學過的C++語言作對比,找出不同),希望自己能夠堅持下去!!!

首先來個漢諾塔的。

<script>
      function hanoi(n,a,b,c){
          if(n==1){
              document.write("Move "+n+" from "+a+" to "+c+"</br>");
          }
          else{
              hanoi(n-1,a,c,b);
              document.write("Move "+n+" from "+a+" to "+c+"</br>")
              hanoi(n-1,b,a,c);
          }
      }
      hanoi(3,"A","B","C");
</script>


菜鳥說明:

采用遞歸(遞歸就是有限的重用一個的函數,此函數變量可改變,有條件判斷讓函數能過自行結束)的辦法實現,將上面代碼直接貼到html頁面,打開Html產生下圖所示證明你成功了。

與C語言的區別(不敢分優缺點):

1.不需要調用外部文件,只要是支持JS的瀏覽器就能解析。

2.變量不需要申明,但要明確是整型還是字符串(字符的話要加雙引號!)。

3.JS是逐句解析,不需要主函數,創建一個對象之后可以直接在后面調用使用。

4.

 

普及常識: 漢諾塔:漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM