🔥WPS 递归第二集|LAMBDA 算出阶乘 N!
上一集带大家搞懂了递归的基础逻辑,还实战了 1~N 累加。这一集直接升级,用递归算阶乘 N!,结构几乎一模一样,看懂就会用!
一、什么是阶乘?
比如 5! = 5×4×3×2×1 = 120本质就是:从 N 一直乘到 1,用递归实现最简洁。
二、递归核心逻辑
调用自己 → 相乘 → 再调用自己 → 再相乘满足停止条件 → 停止递归 → 逐层返回结果
三、递归三要素对照
停止条件
递归的出口,到 1 就不再往下执行
执行方法
当前数字 × 下一层递归算出的结果
循环体
自己调用自己,参数不断减 1 推进计算
四、WPS 直接可用公式
excel
=LAMBDA(n,IF(n=1,1,n*MYSELF(n-1)))(5)
结果:120
想算几的阶乘,就把最后的 (5) 改成对应数字即可。
五、公式逐行拆解
excel
=LAMBDA(n,IF(n=1,1,n*MYSELF(n-1)))(5)
n=1:停止条件,到 1 直接返回 1
n*MYSELF(n-1):当前数 × 下一层结果,核心计算
MYSELF(n-1):递归调用自己,数字不断减 1
最后的(5):传入要计算的数字,代表求 5!
六、执行过程
MYSELF(5) = 5 × MYSELF(4)
MYSELF(4) = 4 × MYSELF(3)
MYSELF(3) = 3 × MYSELF(2)
MYSELF(2) = 2 × MYSELF(1)
MYSELF(1) = 1
然后逐层返回:1 → 2×1=2 → 3×2=6 → 4×6=24 → 5×24=120
七、小练习
把公式里的 5 换成这些数字试试:
6! = 720
7! = 5040
10! = 3628800
学会这两个案例,递归基本就入门了,复杂一点的递归逻辑都能看懂。
下一集想看递归实现什么?倒序数字、求和、查找还是其他?评论区说~