JS中的递归和案例

一、递归函数

递归是一种在程序设计语言里面被广泛使用的算法,通过直接或间接来调用自身,将大型的复杂问题层层转化为一个与原问题相似但规模较小的问题来求解,这就是递归。而在JavaScript中,函数直接或间接的调用自己,则该函数便称为递归函数。

二、使用递归函数的条件

一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

如果说没有边界条件的话就可能出现死循环,比如:

function fn(){
				alert(41);
				fn();
			}
			fn();

他会一直弹出

三、案例

function fn1(n){
			     if(n<=1){
			         return 1;
			     }else{
					 return n+fn1(n-1)
			     }
			 }
			 function fn2(n){
			     if(n<=1){
			         return 1;
			     }else{
			         return n*fn1(n-1) //fn1(4)=10
			     }
			 }
			 console.log(fn2(5)) //50
// n=1*2*3*4*...*(n-1)*n;
			function fn(n){
				if(n===1){
					return 1
				}
				return fn(n-1)*n
			}
			// console.log(fn(10));//3628800
			console.log(fn(4));//24
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值