參考網址:html
http://www.cnblogs.com/CCBB/archive/2009/04/25/1443441.html優化
var arr=[];
function fn(n){
if(n<=2){
return 1;
}else{
if(arr[n]){
return arr[n];
}else{
arr[n]=fn(n-1)+fn(n-2);
return arr[n];
}
}
}htm
alert(fn(100));blog
請實現一個Fibonacci?遞歸
假設:
1. 手上一對小兔子,一公一母
2. 2個月就長大了,每過一個月生一對小兔子ci
問:一年之後手上有幾對兔子?
144 -> 288 -> 2880
問:二年之後多少?
46368-> 92736-> 927360
問:三年之後多少?
14930352 -> 29860704 -> 298607040
問:四年之後多少?
9615053952-> 96150539520
問:100個月之後有多少?
354224848179262000000io
1 1
2 1
3 2 一老一小
4 3 一老二小
5 5 二老三小
6 8 三老五小
7 13
8 21
9 34
10 55
11 89
12 144function
n n-1的兔子+n-2的兔子co
*遞歸很是慢 ×360
遞歸一點不慢,慢在重複計算
優化:不讓它重複計算 算過的->存起來