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()で絶対値として計算し、その結果を返します。これにより、どちらの数値が大きい場合でも常に正の差が得られます。
-
PHPとJavaScriptの違いとは?特徴・実行環境・使い分けを徹底解説
はじめに 本記事では、Web開発で広く使われる2つのプログラミング言語——PHPとJavaScriptの主な違いについて詳しく解説します。それぞれの特徴や動作環境を理解することで、プロジェクトに応じた適切な言語選択ができるようになります。 JavaScriptの特徴 フロントエンドとバックエンドの両方を担当可能:ブラウザ上のUI制御から、Node.jsを使ったサーバーサイド処理まで幅広く対応できます。 非同期処理に対応:入出力操作の完了を待たずに次の処理へ進むため、レスポンスの速いアプリケーションを構築できます。 実行環境が柔軟:ブラウザで直接実行できるほか、「Node.js」の登場以降は
-
【JavaScript】数値を逆順にした値が素数かどうかを判定する方法
問題 今回は、数値を引数として受け取り、その数値を逆順(数字をひっくり返した値)にした結果が素数であれば true を、そうでなければ false を返す JavaScript 関数を作成します。 ちなみに、このように「逆順にすると別の素数になる数」は「エマープ(emirp:prime を逆から読んだ語)」と呼ばれることがあります。 サンプルコード 以下のコードでは、まず数値を文字列に変換して逆順に並べ替え、その後で素数判定を行っています。 const num = 13; // 数値を逆順にした値を返す関数 const findReverse = (num) => { re