基于OpenLayers的WebGIS程序二次开发实例教程
35241 人在学
递归做为一种算法在程序设计语言中广泛应用。是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。
递归案例:求一个数字各个位数上的数字的和: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语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。