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

JavaScriptで数値とその桁を逆順にした数との差を求める方法


本記事では、数値を1つだけ引数として受け取り、その数値の桁を逆順に並べ替えた数との差(絶対値)を返すJavaScript関数の実装方法を解説します。

関数の要件

作成する関数は、最初かつ唯一の引数として数値を受け取ります。この関数は次の処理を行う必要があります。

  • 引数として渡された数値の桁を逆順に並べ替えた数を計算する
  • 元の数値と逆順の数値の差の絶対値を返す

具体例

たとえば、入力される数値が次の場合を考えてみましょう。

const num = 45467;

このとき、桁を逆順に並べた数値は「76454」になります。

したがって、期待される出力は次のとおりです。
76454 − 45467 = 30987

サンプルコード

const num = 45467;
const findReversed = (num, res = 0) => {
    if(num){
        return findReversed(Math.floor(num / 10), (res * 10) + (num % 10));
    };
    return res;
};
const findDifference = num => {
    const reversed = findReversed(num);
    const difference = Math.abs(num - reversed);
    return difference;
};
console.log(findDifference(num));

出力結果

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

30987

コードの解説

findReversed関数: 再帰呼び出しを利用して数値を反転させます。引数numが0以外である間、最後の桁(num % 10)を結果(res * 10)に追加しながら、残りの桁(Math.floor(num / 10))に対して自分自身を再帰的に呼び出します。numが0になった時点で、蓄積されたres(反転後の数値)を返します。

findDifference関数: findReversedで得られた反転後の数値と元の数値の差をMath.abs()で絶対値として計算し、その結果を返します。これにより、どちらの数値が大きい場合でも常に正の差が得られます。

  1. PHPとJavaScriptの違いとは?特徴・実行環境・使い分けを徹底解説

    はじめに 本記事では、Web開発で広く使われる2つのプログラミング言語——PHPとJavaScriptの主な違いについて詳しく解説します。それぞれの特徴や動作環境を理解することで、プロジェクトに応じた適切な言語選択ができるようになります。 JavaScriptの特徴 フロントエンドとバックエンドの両方を担当可能:ブラウザ上のUI制御から、Node.jsを使ったサーバーサイド処理まで幅広く対応できます。 非同期処理に対応:入出力操作の完了を待たずに次の処理へ進むため、レスポンスの速いアプリケーションを構築できます。 実行環境が柔軟:ブラウザで直接実行できるほか、「Node.js」の登場以降は

  2. 【JavaScript】数値を逆順にした値が素数かどうかを判定する方法

    問題 今回は、数値を引数として受け取り、その数値を逆順(数字をひっくり返した値)にした結果が素数であれば true を、そうでなければ false を返す JavaScript 関数を作成します。 ちなみに、このように「逆順にすると別の素数になる数」は「エマープ(emirp:prime を逆から読んだ語)」と呼ばれることがあります。 サンプルコード 以下のコードでは、まず数値を文字列に変換して逆順に並べ替え、その後で素数判定を行っています。 const num = 13; // 数値を逆順にした値を返す関数 const findReverse = (num) => { re