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

JavaScriptで数値の先頭の桁を交換した後の差の絶対値を求める方法

問題の概要

今回は、ちょうど2つの数値を含む配列を受け取るJavaScript関数を作成します。この関数の目的は、2つの数値の先頭の桁(最初の数字)同士を入れ替えた後、その数値の差の絶対値を返すことです。

例として、配列 [105, 413] を考えてみましょう。

  • 105 の先頭の「1」と、413 の先頭の「4」を入れ替えます。
  • すると、新しい数値はそれぞれ 405113 になります。

したがって、求める差は以下のようになります。

|405 − 113| = 292

解決のアプローチ

この問題は、以下の手順で解決できます。

  1. 各数値を文字列に変換する(String() を使用)。
  2. 両方の文字列の先頭の1文字を取り出す。
  3. 先頭の文字を互いに入れ替えて、新しい文字列を組み立てる。
  4. 新しい文字列を再び数値に変換し、Math.abs() を使って差の絶対値を計算する。

コード例

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

const arr = [105, 413];
const interchangedDigitDiff = (arr = []) => {
    // 数値を文字列に変換
    arr = arr.map(String);
    const [first, second] = arr;

    // 各数値の先頭の文字を取得
    const fChar = first[0];
    const sChar = second[0];

    // 先頭の文字を入れ替えた新しい数値を作成
    const newFirst = sChar + first.substring(1, first.length);
    const newSecond = fChar + second.substring(1, second.length);

    // 数値に戻して差の絶対値を計算
    const newArr = [+newFirst, +newSecond];
    const diff = Math.abs(newArr[0] - newArr[1]);
    return diff;
};
console.log(interchangedDigitDiff(arr));

コードのポイント

  • map(String): 配列内のすべての数値を一括で文字列に変換します。
  • substring(1): 文字列の2番目以降の部分(先頭以外)を取り出します。
  • 単項プラス演算子(+): 文字列を素早く数値へ変換します。
  • Math.abs(): 負の値にならないよう、差の絶対値を求めます。

実行結果

コンソールには以下の出力が表示されます。

292

このように、文字列操作と数値変換を組み合わせることで、桁の入れ替え処理をシンプルかつ効率的に実装できます。負の数や異なる桁数の数値にも対応できるため、さまざまなケースで応用可能です。

  1. JavaScriptで数値の各桁の数字を一つずつ分割表示する方法

    はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html>   <head>   &n

  2. JavaScriptで2つの直方体の体積差を求める方法

    問題JavaScriptで、2つの直方体(キューボイド)の長さ・幅・高さを指定する配列を受け取る関数を作成します。この関数は、それぞれの直方体の体積を計算し、その絶対差(差の絶対値)を返す必要があります。直方体の体積は「長さ × 幅 × 高さ」で求められるため、まず各直方体の体積を算出し、Math.abs()メソッドを使って2つの体積の差の絶対値を取得します。コード例以下が実際のコードです。const h1 = 10; const w1 = 12; const l1 = 15; const h2 = 12; const w2 = 15; const l2 = 9; const findVol