JS 递归介绍及案例

递归:函数中调用函数自己,在使用递归的时候一定需要有结束递归的条件,否则就会变成死循环,直到浏览器崩溃。

(1)求n个数字的和,常规代码:

//求5个数字的和
var sum=0
for(var i=0;i<6;i++){
    sum=sum+i;
}
console.log(sum);

(2)求n个数字的和(递归的思路),代码如下:

//递归实现n个数字的和
function getSum(x){
    if(x==1){
       return 1;
    }
    return x+getSum(x-1);
}
console.log(getSum(5));

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

 function getEverySum(x) {
      if(x<10){
        return x;
      }
      //获取的是这个数字的个位数
      return x%10+getEverySum(parseInt(x/10));
    }
   console.log(getEverySum(123));//6

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

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

 

你可能感兴趣的:(js代码)