JavaScriptで指定範囲内の数値の立方和を計算する方法
問題
今回は、2つの数値からなる範囲配列を受け取り、その範囲内に含まれるすべての数値の立方数(3乗した値)を合計して返すJavaScript関数を作成します。
たとえば、範囲が [4, 11] の場合、4³ から 11³ までの合計を求めることになります。
解決のアプローチ
この問題は次の手順で解くことができます。
- 範囲の下限から上限まで、順番に各数値を取り出す
- 取り出した数値を3乗する
- 3乗した値を累積し、最終的な合計を返す
コード例
実際の実装コードは以下の通りです。
const range = [4, 11];
const sumCubes = ([l, h]) => {
const findCube = num => num * num * num;
let sum = 0;
for(let i = l; i <= h; i++){
sum += findCube(i);
};
return sum;
};
console.log(sumCubes(range));出力結果
4320
コードの解説
この関数では、分割代入(デストラクチャリング)を使って範囲配列から下限値 l と上限値 h を受け取っています。内部の findCube 関数は、引数として渡された数値を3乗して返すシンプルなヘルパー関数です。
続いて、for ループで下限から上限までの各数値に対して findCube を呼び出し、その結果を変数 sum に加算していきます。ループが完了した時点で、合計値を戻り値として返します。
今回の例では、4³ + 5³ + 6³ + 7³ + 8³ + 9³ + 10³ + 11³、つまり 64 + 125 + 216 + 343 + 512 + 729 + 1000 + 1331 を計算しており、結果は 4320 となります。
同様の処理は、reduce() メソッドや数学公式を利用することでも実装可能です。状況に応じて可読性とパフォーマンスのバランスを考慮して選択するとよいでしょう。
-
JavaScriptの数値(Number)の基本と実践サンプルコード
JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
JavaScriptで指定した範囲内の整数ペアを生成する方法
問題数値 n を引数として受け取る JavaScript 関数を作成します。この関数は、以下の条件を満たす整数のペア [a, b] をすべて含む配列を返す必要があります。0 <= a <= b <= nつまり、a と b はどちらも 0 以上 n 以下であり、かつ a は b 以下である必要があります。例えば n = 4 の場合、(0, 0) から (4, 4) までの15通りの組み合わせが生成されます。実装コード二重ループを使うことで、条件を満たすすべてのペアを効率よく列挙できます。外側のループ変数 i を a、内側のループ変数 j を b とし、j を i から開始するこ