赔率总和 N - JavaScript
Sum odds in integer N - JavaScript
我正在尝试创建一个函数来计算 N 个整数的赔率总和。
例如,如果 N = 5 => 1+3+5 = 9
这是我的尝试:
const n = 4
let arr = []
let i = 0
while (i < n) {
i++
arr.push(i)
}
console.log(arr)
这段代码return一个数组,所有整数都在N中,没问题。
现在我想过滤赔率,然后求和。
我尝试了不同的方法但没有成功。
感谢您的宝贵时间!
const calculateSum = (n) => {
let sum = 0;
// Start from 1 and increment by 2 (1, 3, 5, 7, 9, 11, etc)
for(let i = 1; i <= n; i+=2) {
sum += i;
}
return sum;
}
我建议使用 Array.reduce()
以获得所需的结果。我们使用 Array.from()
生成从 1 到 N 的所有整数,然后使用 .reduce() 将任何奇数添加到总和(累加器)值中。
function getSumOfOddNumbers(n) {
return Array.from({length: n}, (v,k) => k + 1).reduce((sum, cur) => (cur % 2) ? sum + cur: sum, 0);
}
for(let n = 1; n < 10; n += 2) {
console.log(`Odd number sum from 1 to ${n}:`, getSumOfOddNumbers(n));
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
我正在尝试创建一个函数来计算 N 个整数的赔率总和。
例如,如果 N = 5 => 1+3+5 = 9
这是我的尝试:
const n = 4
let arr = []
let i = 0
while (i < n) {
i++
arr.push(i)
}
console.log(arr)
这段代码return一个数组,所有整数都在N中,没问题。
现在我想过滤赔率,然后求和。 我尝试了不同的方法但没有成功。
感谢您的宝贵时间!
const calculateSum = (n) => {
let sum = 0;
// Start from 1 and increment by 2 (1, 3, 5, 7, 9, 11, etc)
for(let i = 1; i <= n; i+=2) {
sum += i;
}
return sum;
}
我建议使用 Array.reduce()
以获得所需的结果。我们使用 Array.from()
生成从 1 到 N 的所有整数,然后使用 .reduce() 将任何奇数添加到总和(累加器)值中。
function getSumOfOddNumbers(n) {
return Array.from({length: n}, (v,k) => k + 1).reduce((sum, cur) => (cur % 2) ? sum + cur: sum, 0);
}
for(let n = 1; n < 10; n += 2) {
console.log(`Odd number sum from 1 to ${n}:`, getSumOfOddNumbers(n));
}
.as-console-wrapper { max-height: 100% !important; top: 0; }