web前端:JS高级---递归案例
lzzyok小宝贝
2024-04-23 22:56
递归做为一种算法在程序设计语言中广泛应用。是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。
递归案例:求一个数字各个位数上的数字的和: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语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341