close
入門程式語言都會講到遞迴,最常看到的範例就是河內塔,短短的幾行,對我來說是最遙遠的距離,不會的挫折讓我遺忘許久,剛好買了一本書《演算法洞見 遞推與遞迴》,至少可以動動頭腦,然後我發現以前我在寫程式,真的就是在寫,很常用的語法是沒有問題的,但是我不會回去複習我以前所寫的程式,時間一久那些原本懂的東西真的就又變成不懂,所以最簡單的方式就是理解之後把她背下來,時常的回去複習,我不知道這樣學習是否有效,反正就實驗看看。
書中我最喜歡的部分就是作者不是在寫程式,而是在寫一個東西,那種感覺我不會,但至比"寫程式"還要有趣與讓人興奮。
recursion不一樣的地方是她很喜歡從後面來,而且一定是到最後一個前面的東西才可以加總,這需要好好地想一想才可以理解。
遞推 = recurrence
遞迴 = recursion
範例: 1 + 2 + 3 + ... + 10
//recurrence: public class recurrence{ public static void main(String[] args){ int sum = 0; for(int i=1; i<=10; i++){ sum+=i; } System.out.println(sum); } }
//recursion: public class recursion{ public static void main(String[] args){ System.out.println(add(10)); } public static int add(int sum){ if( sum == 0) return 0; return sum+add(sum-1); } }
遞迴小動畫
文章標籤
全站熱搜