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

JavaScriptで3または5の倍数の合計を求める方法

本記事では、引数として上限値(リミット)となる数値を1つ受け取り、その上限未満の自然数のうち「3または5の倍数」に該当する数値をすべて合計して返すJavaScript関数を作成します。

例:

上限が10の場合、条件を満たす数は 3、5、6、9 の4つなので、合計は 3+5+6+9 = 23 となります。

コード例

以下が実際のコードです。

const sumOfMultiple = (limit = 10) => {
    let i, sum = 0;
    for (i = 3; i < limit; i += 1) {
        if (i % 3 === 0 || i % 5 === 0) {
            sum += i;
        };
    };
    return sum;
}
console.log(sumOfMultiple(1000));
console.log(sumOfMultiple(10));
console.log(sumOfMultiple(100));

実行結果

コンソールには以下のように出力されます。

233168
23
2318

コードの解説

この関数では、まず合計を格納する変数 sum を0で初期化し、forループを使って3から上限値未満までの数値を順番にチェックしていきます。

剰余演算子(%)を使用し、対象の数値を3または5で割った余りが0であれば、その数値は倍数であると判断できます。条件を満たした数値だけをsumに加算し、ループが完了した時点でsumを返すことで、条件に一致するすべての自然数の合計が求まります。

なお、デフォルト引数として limit = 10 を設定しているため、引数なしで呼び出した場合でもエラーにならず、上限10として動作する点もポイントです。

  1. JavaScriptでエレベータが移動した階数の合計を求める方法

    問題 ある時間帯において、建物のエレベータが停止した階数を要素として持つ配列を受け取り、その間にエレベータが移動した階数の合計を返すJavaScript関数を作成する必要があります。 解決のアプローチ この問題は、配列内の隣り合う2つの階数の差の絶対値を順番に足し合わせることで解決できます。例えば、7階から1階へ移動すれば6階分、1階から7階へ戻ればさらに6階分とカウントしていきます。最終的に、これらの差をすべて合計した値が、エレベータがカバーした総階数となります。 コード例 以下がその実装コードです。 const arr = [7, 1, 7, 1]; const floorsCovere

  2. JavaScriptで合計が0以上となる最長部分配列を見つけるアルゴリズム

    問題の概要今回は、-1から1の範囲の整数のみを含む配列を受け取り、その中から合計が0以上になる最長の連続する部分配列(サブアレイ)の長さを返すJavaScript関数を作成します。一見単純な問題に見えますが、全ての組み合わせを総当たりで調べると計算量がO(n²)となり、配列が大きくなると非効率です。そこで本記事では、累積和(プレフィックスサム)の考え方を活用し、線形時間O(n)で解くスマートな手法を紹介します。解法のコードconst arr = [-1, -1, 0, 1, 1, -1, -1, -1]; const longestPositiveSum = (arr = []) =>