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