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

JavaScriptで偶数番目と奇数番目の桁の合計の差を求める方法

本記事では、数値を引数として受け取り、「偶数番目の位置にある桁の合計」と「奇数番目の位置にある桁の合計」の差を返すJavaScript関数の作成方法を解説します。

問題の例

例として、数値 345336 を考えてみましょう。右側から数えて、偶数インデックス(0、2、4番目)にある桁は「6」「3」「4」で、その合計は13です。一方、奇数インデックス(1、3、5番目)にある桁は「3」「5」「3」で、その合計は11になります。したがって、求める差は 13 − 11 = 2 となります。

コード例

それでは、実際のコードを見てみましょう。

const num = 345336;

const evenOddDifference = (num, res = 0, ind = 0) => {
if(num){
if(ind % 2 === 0){
res += num % 10;
}else{
res -= num % 10;
}
return evenOddDifference(Math.floor(num / 10), res, ++ind);
}
return Math.abs(res);
};
console.log(evenOddDifference(num));

コードの解説

この関数は、次の手順で動作します。

  • num % 10:現在の最下位の桁(一の位)を取り出します。
  • ind % 2 === 0:インデックスが偶数なら合計に加算し、奇数なら減算します。
  • Math.floor(num / 10):最下位の桁を取り除き、再帰呼び出しによって次の桁へ処理を進めます。
  • Math.abs(res):すべての桁の処理が終わった後、結果の絶対値を返します。

再帰を使うことで、ループ処理を書かずに簡潔に各桁へアクセスできるのがポイントです。

出力

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

2
  1. JavaScriptで偶数インデックスの要素の合計に最後の要素を掛けて求める方法

    問題 整数の配列を受け取り、偶数番目のインデックスにある要素の合計に、最後のインデックスの要素を掛けた値を返すJavaScript関数を作成します。 例として、次の配列を考えてみましょう。 const arr = [4, 1, 6, 8, 3, 9]; この場合、期待される出力は次の通りです。 const output = 117; 計算の流れ 偶数インデックス(0, 2, 4)にある要素は「4, 6, 3」 それらの合計は「4 + 6 + 3 = 13」 最後のインデックスの要素は「9」 したがって「13 × 9 = 117」となります コード例 以下が実際のコードです。 a + b

  2. JavaScriptで配列の合計値が偶数か奇数かを判定する方法

    本記事では、配列内の全要素の合計を求め、その結果が偶数か奇数かに応じて文字列を返すJavaScript関数の実装方法を解説します。 問題 整数の配列 arr を引数として受け取るJavaScript関数を作成する必要があります。この関数は、配列内のすべての要素の合計が奇数であれば文字列「odd」を、偶数であれば文字列「even」を返すようにします。 解決のアプローチ まず、配列メソッドの reduce() を使って配列全体の合計値を算出します。次に、合計値を 2 で割った余り(剰余演算子 % の結果)が 0 かどうかをチェックすることで、偶数・奇数の判定を行います。 コード例 以下が実際のコ