本文已参与 「新人创作礼」活动, 一起开启掘金创作之路。
1. 求和 1 - n 的和
// 递归求和
function sum(n) {
// 给定一个终止条件
if(n == 1) {
return 1
}
// 先提出来一个最大数, 然后每循环一遍加上传入数字的减一
return n + sum(n-1)
}
console.log(sum(100));
2. 等差数列的和
// 求等差数列的和 1, 3, 5, 7 等, 两数之间差数相等 公式(首项 + (n-1) *公差)
function foo(a, b, n) { // a: 首项; b: 公差; n: 有几项
if(n == 1) {
return a
}
return a + b * (n - 1) + foo(a, b, n - 1)
}
console.log(foo(3, 2, 4)); // 3, 5, 7, 9 总和: 24
3. 求数组的和
// 求数组的和
function bar(arr, start, end) { // arr 第一个是数组; start 开始的下标; end 结束的下标
// 当开始的下标和结束的下标一样那么就结束循环
if(arr[start] == arr[end]) {
return arr[end]
}
// 数组的第一个值 + 每次循环都会把下标加一 直到循环条件结束时打印输出
return arr[start] + bar(arr, start + 1, end)
}
console.log(bar([20, 50, 90, 100], 0, 3)); // 260