递归实现数组求和
//递归求和,不允许使用循环,不允许使用标准库函数
/**
* nums:5,1,2,3,4
f(i)表示从数组第i位到末尾之和
f(i) = nums[i] + f(i+1)
当 i>=nums.length f(i) = 0
*/
let nums = [5, 1, 2, 3, 4];
function sum(numsArr) {
function f(i) {
return i >= numsArr.length ? 0 : numsArr[i] + f(i + 1)
}
return f(0)
}
console.log(sum(nums)); // 15