现在的位置: 首页 > web前端 > 正文

Js中的递归

2020年07月10日 web前端 ⁄ 共 921字 ⁄ 字号 评论关闭

  递归的概念就是函数自己调用自己。这句话的意思也很明白,那么我们就看几个递归的实际例子,来探讨一下javascript中好玩的递归操作吧。


  递归的基础


  递归的概念


  •在程序中函数直接或间接调用自己•直接调用自己


  •间接调用自己


  •跳出结构,有了跳出才有结果


  递归的思想


  •递归的调用,最终还是要转换为自己这个函数•如果有个函数foo,如果他是递归函数,到最后问题还是转换为函数foo的形式


  •递归的思想就是将一个未知问题转换为一个已解决的问题来实现


  functionfoo(){


  ...foo(...)...


  }


  递归的步骤(技巧)


  1.假设递归函数已经写好


  2.寻找递推关系


  3.将递推关系的结构转换为递归体


  4.将临界条件加入到递归体中


  简单递归练习


  求1-100的和


  •分析:


  •假设递归函数已经写好为sum,既sum(100),就是求1-100的和


  •寻找递推关系:就是n与n-1,或n-2之间的关系


  sum(n)==sum(n-1)+n


  varres=sum(100);


  varres=sum(99)+100;


  3.将递归结构转换成递归体


  functionsum(n){


  returnsum(n-1)+n;


  }


  4.将临界条件加入到递归中


  •求100转换为求99


  •求99转换为求98


  •求98转换为求97


  •...


  •求2转换为求1


  •求1转换为求1


  •即sum(1)=1


  5.递归函数


  functionsum(n){


  if(n==1)return1;


  returnsum(n-1)+n;


  求1,3,5,7,9,...第n项的结果和前n项和,序号从0开始


  •分析•假设递归函数已经完成foo(n),得到奇数


  •递归关系:◦foo(n)=foo(n-1)+2


  •递归体


  functionfoo(n){


  returnfoo(n)=sum(n-1)+2;


  }


  4.跳出条件


  •foo(n)=foo(n-1)+2


  •foo(1)=foo(0)+2


  •foo(0)=1;


  总之,Js中的递归给大家简单的介绍了一些,希望大家多看看。


  

【上篇】
【下篇】

抱歉!评论已关闭.