斐波那契数列

参考网址:

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];
}
}
}

alert(fn(100));

 

请实现一个Fibonacci?

假设:
1. 手上一对小兔子,一公一母
2. 2个月就长大了,每过一个月生一对小兔子

问:一年以后手上有几对兔子?
144 -> 288 -> 2880
问:二年以后多少?
46368-> 92736-> 927360
问:三年以后多少?
14930352 -> 29860704 -> 298607040
问:四年以后多少?
9615053952-> 96150539520
问:100个月以后有多少?
354224848179262000000

1 1
2 1
3 2 一老一小
4 3 一老二小
5 5 二老三小
6 8 三老五小
7 13
8 21
9 34
10 55
11 89
12 144


n n-1的兔子+n-2的兔子

*递归非常慢 ×

递归一点不慢,慢在重复计算

优化:不让它重复计算
算过的->存起来

 

posted @ 2016-02-04 18:37  醉酒笑红尘  阅读(163)  评论(0编辑  收藏  举报