🔥WPS 递归第三集|递归求和任意一组数字!

前两集我们用递归做了累加、阶乘,都是单个数字往下推,这一集来点真正办公能用的:给一组数字,用 LAMBDA 递归算出它们的总和。


一、案例需求

A1:A5 = {1,2,3,4,5}用递归算出总和:1+2+3+4+5 = 15

二、完整可运行公式

excel

=LAMBDA(arr,IF(ROWS(arr)=1,INDEX(arr,1),INDEX(arr,1)+MYSELF(DROP(arr,1))))(A1:A5)

直接把区域改成你自己的,就能用。


三、递归三要素对应

  1. 停止条件

数组只剩 1 个数字时,直接返回这个数,不再递归

  1. 执行方法

取第一个数 + 剩下数组的总和

  1. 循环体

DROP (arr,1) 去掉第一个数,继续递归


四、公式逐行拆解

excel

=LAMBDA(arr,

IF(ROWS(arr)=1,

INDEX(arr,1),

INDEX(arr,1) + MYSELF(DROP(arr,1)))

(A1:A5)

  • arr:传入的一组数字

  • ROWS(arr)=1:数组只剩 1 个就停止

  • INDEX(arr,1):取出当前数组第一个数

  • DROP(arr,1):去掉第一个数,剩下的继续递归

  • MYSELF(...):自己调用自己,实现递归


五、执行流程

{1,2,3,4,5}

= 1 + 递归 ({2,3,4,5})

= 1 + 2 + 递归 ({3,4,5})

= 1 + 2 + 3 + 递归 ({4,5})

= 1 + 2 + 3 + 4 + 递归 ({5})

= 1+2+3+4+5 = 15


六、小练习

把区域换成任意数字,比如:

  • {10,20,30} → 60

  • {5,8,3,9} → 25

都能一键算出。


七、总结

递归不只用来算数学题,在 WPS 里处理数组、列表、循环计算特别好用。学会数组递归,你已经超过 90% 的普通用户了。

下一集想看:递归查找最大值?递归倒序?递归拼接文本?评论区告诉我!

浙江省
浏览 140
收藏
4
分享
4 +1
+1
全部评论