发新贴  快速回复

对递归的理解一直模模糊糊,有哪位高人能给我解释下吗?

tangdaxia
2017-04-12 00:33
JavaScript面试题系列,里面对斐波那契数列的那个递归算法比较懵逼,求老师解释一下原理?
function aaa(n){
    if(n<=2){
        return 1;
    }
    return aaa(n-1) + aaa(n-2);      //在这里的时候n等于几?  
}                //13            //8                这个两个数是怎么算出来的?  
alert(aaa(8));

return aaa(n-1) + aaa(n-2);  看这行代码一脸懵逼呀

本帖内容针对以下视频发布:

5-妙味课堂-前端面试题系列
xueranbo
aaa(8)  
aaa(7)+aaa(6)
aaa(6)+aaa(5)+aaa(5)+aaa(4)
一直下去
这个aaa()函数会一直调用  直到会满足符合条件的判断  返回值值1 当循环完函数后  就会有21个1 想加  等于21
不知道对不对  各位看官看到不对及时纠正 不要误导其他人
2017-04-12 20:04  回复本帖
849800875
递归就是函数自己调用自己,大多时候递归都可以被循环所代替。递归是一个先进后出过程,第一次调用的函数的返回值需要等待其他调用都返回结果之后才能返回。
2017-04-14 12:36  回复本帖
登录 后才可以发表回复