典型的斐波那契数列 JavaScript实现

来源:互联网 发布:金融数据来源 编辑:程序博客网 时间:2024/06/06 01:37

题目:

如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子;
假定每对兔子都是一雌一雄,试问一对兔子,第 n 个月能繁殖成多少对兔子?

分析一下,可以知道这应该使用函数的callee实现,因为JavaScript中函数不能直接实现自调用,所以使用arguments.callee来委婉实现;

分析规律,可知,第一个月是1,之后是2,3,5,8….,可以知道下一个月的数量是上两个月的数字之和,有了思路,就可以实现了;

var result = [];function fn(n){    if(n==1){    //典型的斐波那契数列        return 1;    }else if(n==2){        if(result[n]){            return result[n];        }else{            return 2;        }    }else{        //argument.callee()表示 fn()        result[n]=arguments.callee(n-1)+arguments.callee(n-2);    }    return result[n];}

调用:

fn(3)3fn(4)5
原创粉丝点击