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

JavaScriptで整然数(Tidy Number)を判定する方法

整然数(Tidy Number)とは?

整然数とは、各桁の数字が左から右へ向かって非減少順(前の桁より小さくなることがない並び)になっている数のことを指します。本記事では、与えられた数値が整然数かどうかを判定するJavaScript関数の実装方法を解説します。

整然数の例

489 …… 4 ≤ 8 ≤ 9 なので整然数
234557 …… 2 ≤ 3 ≤ 4 ≤ 5 ≤ 5 ≤ 7 なので整然数
34535 …… 途中で 5 の次に 3 が来るため整然数ではない

判定アルゴリズムの考え方

判定方法はシンプルです。数値を下の桁から順に取り出し、隣り合う桁どうしを比較していきます。もし前の桁より大きな数字が現れた時点で、その数は整然数ではないと判断できます。すべての桁を確認して問題がなければ true を返します。

ここでは、再帰呼び出しを使ったコンパクトな実装例を紹介します。

サンプルコード

const num = 234789;

const isTidy = (num, last = 10) => {
  if (num) {
    if (num % 10 > last) {
      return false;
    }
    return isTidy(Math.floor(num / 10), num % 10);
  }
  return true;
};

console.log(isTidy(num));

実行結果

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

true

コードの解説

  • num % 10:数値の一番下の桁(1の位)を取り出します。
  • Math.floor(num / 10):一番下の桁を除いた残りの数値を作ります。
  • last 引数:直前に確認した桁の値を保持します。初期値を 10 としているため、最初の比較は必ず条件を満たします。

この処理を再帰的に繰り返し、num が 0 になった時点ですべての桁が非減少順だったことが確定するので true を返します。一方、処理の途中で一度でも「現在の桁 > 前の桁」という組み合わせが見つかれば、その場で false を返して判定を終了します。

  1. JavaScriptで数値が三角数かどうかを判定する方法

    三角数(Triangular Number)とは? 三角数とは、点を正三角形の形に敷き詰めたときに現れる数のことです。n番目の三角数は「1からnまでの自然数の合計」として表され、次の公式で求められます。 Tn = n(n+1) / 2 具体的な三角数は 1, 3, 6, 10, 15, 21, 28 … と続きます。例えば 10 は、各辺に4個の点を配置した正三角形を構成できるため、三角数です。 問題 数値を引数として受け取り、その数値が三角数であれば true を、そうでなければ false を返すJavaScript関数を実装します。 判定の考え方 n(n+1)/2 = num となる正

  2. JavaScriptで指定した数より大きい最小の素数を見つける方法

    問題JavaScriptで、ある数値 n を受け取る関数を作成することを考えます。この関数は、n より大きい数の中で最小となる素数を返す必要があります。アプローチまず、与えられた数が素数かどうかを判定する補助関数 isPrime を用意します。素数判定では、2 からその数の平方根まで順に割り切れるかを確認すれば十分です。平方根以降の因数は必ずペアが存在するため、ここまで調べれば判定できます。これにより計算量を大幅に抑えられます。次に、nextPrime 関数の中で、引数の数値を1ずつ増やしながら isPrime で判定を行い、最初に見つかった素数を返します。コード例以下が実際のコードです。co