Javascript递归的简单应用

本文深入浅出地介绍了递归的概念,通过实例展示了如何使用递归计算1到100的和、求解阶乘以及计算斐波那契数列,强调了每个递归函数必须包含边界条件以防止无限循环。递归是一种强大的编程技巧,对于理解和解决问题有着重要作用。
摘要由CSDN通过智能技术生成

什么是递归?

简单来说,就是在函数内部嵌套自身这个函数。

 function fib(n){
    fib(n);
}

假设现在必须要执行 fib,单就上述情况而言,它会一直执行下去。因此,每个递归函数必须要有边界条件(跳出递归)。

下面会结合几个案例帮助大家去理解递归。

例如:要计算1到100的和。
(1)通常会用for循环计算

function fn(n){
  var sum=0;
  for(let i=1;i<=n;i++){
    sum +=i;
  }
  return sum;
}
console.log( fn(100) );//5050

(2)用递归计算1到100的和

function fn(n){
  if(n===1) return 1;//确认边界条件,当n=1的时候,返回值1,fn(1)=1
  return n+fn(n-1);/*嵌套:fn(n)=n+fn(n-1),例如:计算fn(10)=?,
  那么fn(10)=10+fn(9),所以 fn(9)=9+fn(8),而 fn(8)=8+fn(7).......一直到
  最后计算 fn(2)=2+fn(1), 当n=1时,跳出递归,将1返回给fn(1),所以就会
  依次得到fn(2)、fn(3)、fn(4)......fn(10)的值。*/  
}
console.log( fn(100) );//5050

(3)同样的规律计算n的阶乘

function getNum(n){
   if(n===1) return 1;//确认边界条件,跳出递归
   return n*getNum(n-1);
}
console.log(getNum(5) );//120
console.log(getNum(6) );//720
console.log(getNum(7) );//5040
console.log(getNum(8) );//40320

(4)计算斐波那契第n项的值

function fib(n){
  if(n===1 || n===2) return 1;//1、1、2、3、5、8、13、21、34、55
  return fib(n-1)+fib(n-2); 
}
console.log(fib(7) );//13
console.log(fib(8) );//21
console.log(fib(9) );//34
console.log(fib(10) );//55
console.log(fib(18) );//2584
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值