JavaScriptで数値の最大桁を求める再帰関数の実装方法
概要
JavaScriptでは、引数として受け取った数値の中から最大の桁(いちばん大きい数字)を返す再帰関数を書く必要がある場合があります。
たとえば、数値が 45654356 の場合、含まれる数字は 4・5・6・5・4・3・5・6 なので、その中で最も大きい数字は 6 です。したがって、この関数の戻り値は 6 になるべきです。
コード例
この処理を実装したコードは以下のとおりです。
const num = 45654356;
const greatestDigit = (num = 0, greatest = 0) => {
if(num){
const max = Math.max(num % 10, greatest);
return greatestDigit(Math.floor(num / 10), max);
};
return greatest;
};
console.log(greatestDigit(num));コードの解説
この再帰関数の動作を順番に見てみましょう。
- num % 10:数値の末尾1桁を取り出します。
- Math.max():取り出した数字を、これまでに見つかった最大値と比較します。
- Math.floor(num / 10):末尾の桁を除いた残りの数値を生成し、自分自身を再帰的に呼び出します。
- num が 0 になった時点で再帰を終了し、記録しておいた最大値 greatest を返します。
このように、剰余演算と Math.max を組み合わせることで、文字列への変換を行わずにシンプルかつ効率的に最大桁を求めることができます。
出力結果
コンソールには次のように表示されます。
6
-
【JavaScript】数値の約数をすべて求める関数の実装方法
はじめに本記事では、正の整数を1つ引数として受け取り、その数を余りなく割り切れるすべての数(約数)を配列として返すJavaScript関数の実装方法を解説します。問題の定義作成する関数は、正の整数を唯一の引数として受け取ります。そして、入力された数値を完全に割り切れるすべての数値を要素とする配列を構築して返す必要があります。例えばー入力が次の数値だった場合:const num = 12;期待される出力は以下のとおりです。const output = [1, 2, 3, 4, 6, 12];12の場合、1・2・3・4・6・12の6つの整数が12を割り切れるため、これらが約数となります。実装コード
-
JavaScriptで3桁の数字を並べ替えて最大の数を作る方法
問題正の3桁の整数を1つ引数として受け取り、その各桁を並べ替えることで作れる最大の数を返すJavaScript関数を作成する必要があります。アプローチこの問題は、次の手順で解決できます。まず、入力された数値が実際に3桁であるかを検証します。100未満または999を超える場合は null を返します。数値を文字列に変換し、split() で1文字ずつの配列に分解します。sort((a, b) => b - a) を使って桁を降順に並べ替えます。これにより、大きい桁が先頭に来ます。join() で配列を文字列に結合し、単項プラス演算子(+)で数値型に戻して返します。コード例以下は上記のアプロ