美文网首页
js____递归总结

js____递归总结

作者: 东邪_黄药师 | 来源:发表于2018-09-17 22:46 被阅读10次

递归:函数中调用函数自己,此时就是递归,递归一定要有结束的条件;

    var i = 0;
     function f1() {
      i++;
       if (i < 5) {
        f1();
       }
        console.log("从前有个山,山里有个庙,庙里有个和尚给小和尚讲故 
           事:");
    }
  f1();

==============================================================

 //求n个数字的和,5 计算1+2+3+4+5
  var sum=0;
  for(var i=1;i<=5;i++){
    sum+=i;
  }
  console.log(sum);  //15

=========================================================
//递归实现:求n个数字的和 n=5---> 5+4+3+2+1

//函数的声明
  function getSum(x) {
    if(x==1){
      return 1;
    }
    return x+getSum(x-1);
  }
  //函数的调用
  console.log(getSum(5));
  • 执行过程:
    • 代码执行getSum(5)--->进入函数,此时的x是5,执行的是5+getSum(4),此时代码等待
    • 此时5+getSum(4),代码先不进行计算,先执行getSum(4),进入函数,执行的是4+getSum(3),等待, 先执行的是getSum(3),进入函数,执行3+getSum(2),等待,先执行getSum(2),进入函数,执行 2+getSum(1);等待, 先执行getSum(1),执行的是x==1的判断,return 1,所以,
    • 此时getSum(1)的结果是1,开始向外走出去
    • 2+getSum(1) 此时的结果是:2+1
    • 执行:
    • getSum(2)---->2+1
    • 3+getSum(2) 此时的结果是3+2+1
    • 4+getSum(3) 此时的结果是4+3+2+1
    • 5+getSum(4) 此时的结果是5+4+3+2+1
    • 结果:15

============================================================

  //递归案例:求一个数字各个位数上的数字的和:  123   --->6 ---1+2+3
//523
function getEverySum(x) {
  if(x<10){
    return x;
  }
  //获取的是这个数字的个位数
  return x%10+getEverySum(parseInt(x/10));
}
   console.log(getEverySum(1364));//5



//递归案例:求斐波那契数列

function getFib(x) {
  if(x==1||x==2){
    return 1
  }
  return getFib(x-1)+getFib(x-2);
}
console.log(getFib(12));

===========================================================

相关文章

  • js____递归总结

    递归:函数中调用函数自己,此时就是递归,递归一定要有结束的条件; ========================...

  • 递归

    本文主要内容有: 1、递归的样子2、递归简介3、递归特点4、递归分析方法5、递归程序模板6、递归程序调试7、总结8...

  • Android 事件分发机制

    总结 View 事件分发的本质是递归。 递归的本质是,任务的下发和结果的上报。 View 事件分发设计成递归,是为...

  • 【数据结构】【C#】026-二叉树(BT):🌱遍历介绍

    一、递归遍历: 1、先序遍历:2、中序遍历:3、后续遍历:总结规律: 二、非递归遍历:利用栈来实现 非递归算法实现...

  • 尾调用优化

    尾调用优化 尾递归 正常递归 尾递归 改写以上代码,使其只有一个参数: 总结一下,递归本质上是一种循环操作。纯粹的...

  • 递归实现总结

    总结一下效率低的递归实现(虽然效率低,但是因为这是一种紧凑的实现还可以用线性规划来优化)分治递归就不总结了 ,总结...

  • 16.2-递归习题

    认知,几乎是人与人之间唯一的本质差别,是不可量化的! 递归总结:1.递归要有边界条件、递归前进段、递归返回段;2....

  • 数据结构课程 第八周 遍历二叉树

    存储结构为二叉链表 遍历 先序遍历递归算法 中序遍历递归算法 后序遍历递归算法 总结 时间O(n) 空间(O(n)...

  • 递归是并行还是串行?-->递归二字顾名思义就是:递过去,归回来。

    需满足条件: 1:临界条件(递归出口) 2:递归公式 3:总结条件 当边界条件不满足时,递归前进;当边界条件满足时...

  • 递归下降总结

    先推荐一些编译原理的材料: mooc上斯坦福的compilers课程 《形式语言与自动机导论》(An Introd...

网友评论

      本文标题:js____递归总结

      本文链接:https://www.haomeiwen.com/subject/mdudnftx.html