JavaScriptで最初のn個の奇数の平方和を計算する方法
問題の概要
数値 n を引数として受け取り、最初の n 個の奇数(自然数)の平方の合計を求める JavaScript 関数を作成する必要があります。
例
入力が 3 の場合、計算内容は次のようになります。
1² + 3² + 5² = 35
したがって、期待される出力は次のとおりです。
35
実装コード
以下がそのコードです。
const num = 3;
const squaredSum = num => {
let sum = 0;
for(let i = 1; i <= num; i++){
sum += Math.pow((2 * i) - 1, 2);
};
return sum;
};
console.log(squaredSum(num));コードの解説
i 番目の奇数は「2 × i − 1」という式で表せます。つまり、i = 1 のときは 1、i = 2 のときは 3、i = 3 のときは 5 となります。
この性質を利用し、for ループでカウンタ変数 i を 1 から n まで順に処理しながら、各奇数の平方を Math.pow() で計算して変数 sum に加算していきます。最後に sum を返すことで、最初の n 個の奇数の平方和が求まります。
出力結果
コンソールには以下のように表示されます。
35
補足:数学的な公式による高速化
実は、最初の n 個の奇数の平方和には次のような閉じた形の公式が存在します。
Sum = n × (2n − 1) × (2n + 1) ÷ 3
この公式を利用すれば、ループ処理不要で O(1) の定数時間に計算できます。大きな n を扱う場合に有効です。
const squaredSumFormula = num => {
return num * (2 * num - 1) * (2 * num + 1) / 3;
};
console.log(squaredSumFormula(3)); // 35
-
JavaScriptの数値(Number)の基本と実践サンプルコード
JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
最初のn個の奇数の2乗の総和を求める方法|公式とC言語の実装例
奇数の2乗の数列とは最初のn個の奇数の2乗からなる数列とは、1から始まる奇数を順番に2乗して並べたものです。この数列は次のように表されます。1, 9, 25, 49, 81, 121…また、各項が奇数の2乗であることを明示すると、次のようにも書けます。12, 32, 52, 72, 92, 112…総和を求める数学的公式この数列の総和は、次の公式を使うことで簡単に求められます。sum = n(2n+1)(2n−1)/3 = n(4n2−1)/3計算例入力:N = 4 出力:sum = 84解説まず、各項を実際に足し合わせて確認してみます。12 + 32 + 52 +