下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

web前端:JS高级---递归案例

作者: jane_panyiyun     来源: https://www.cnblogs.com/jane-panyiyun/p/12185973.html点击数:1145发布时间: 2020-03-27 11:23:26

标签: 嵌入式递归开发

Web开发

  递归做为一种算法在程序设计语言中广泛应用。​是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。

  递归案例:求一个数字各个位数上的数字的和:123--->6---1+2+3

  //递归案例:求一个数字各个位数上的数字的和:123--->6---1+2+3

  functiongetEverySum(x){

  if(x<10){

  returnx;

  }

  //获取的是这个数字的个位数

  returnx%10+getEverySum(parseInt(x/10));

  }

  console.log(getEverySum(1364));

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

  functiongetFib(x){

  if(x==1||x==2){

  return1

  }

  returngetFib(x-1)+getFib(x-2);

  }

  console.log(getFib(12));

  使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。

赞(12)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程