JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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
  1. JavaScriptの数値(Number)の基本と実践サンプルコード

    JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co

  2. 最初の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 +