概要
シグマの二乗の総和をjavascriptで関数にします。
ループ縛りとかやろうと思ったけどループのパターンも書けばいいやと思ったので関数の再起とループと公式を使ったものの3つを作ることにしました。

ループでのパターン
'use strict'
function shiguma(offset, length, func){
let result = 0;
for(let i=offset;i<=length;i++){
result += calc(i);
}
return result;
}
function calc(number){
return Math.pow(number, 2);
}
let result = shiguma(1, 2)
console.log(result); |
関数再起でのパターン
'use strict'
function shiguma(offset, length, func){
let sum = 0;
return func(sum, offset, length);
}
function calc(sum, number, length){
let result = Math.pow(number, 2);
sum += result;
let current = number + 1;
if(current > length){
return sum;
}
return calc(sum, current, length)
}
let result = shiguma(1, 4, calc)
console.log(result); |
公式を使ったパターン
'use strict'
function shiguma(offset, length){
return (length * ((length+1)*(2*length+1))) / 6;
}
let result = shiguma(1, 3);
console.log(result); |