ルックアップ テーブルの回避: 整数を単語に変換するための効率的なアルゴリズム
整数を単語表現に変換することは、一般的なプログラミング作業です。ルックアップ テーブルは、小さい数値に対しては簡単な解決策を提供しますが、大きい値に対しては扱いにくくなります。 この記事では、大規模なルックアップ テーブルの使用を回避する、よりスケーラブルで効率的な方法を紹介します。
このアプローチの中核には、いくつかの配列が含まれます。
ones
: 1 桁の数字 (例: "One"、"Two"、... "Nine") の単語を保持する配列。teens
: 11 から 19 までの数字の単語を含む配列。tens
: 10 の倍数を表す単語を保持する配列 (例: "20"、"30"、... "90")。thousandsGroups
: 千、百万、十億のプレフィックスを含む配列。アルゴリズムの中心となるのは FriendlyInteger
関数です。これは 3 つのパラメータを取る再帰関数です。
n
: 変換する整数。leftDigits
: n
の左側の数字の単語表現 (再帰に使用)。thousands
: 現在の千単位のグループ (単位、千、百万など)。FriendlyInteger
は入力整数を再帰的に分解し、単語表現を部分ごとに構築します。 たとえば、1532 を変換すると:
FriendlyInteger(32, "One Thousand", 1)
: 千の位を処理し、「One Thousand」となります。FriendlyInteger(32, null, 0)
: 残りの 32 を処理します。FriendlyInteger(2, "Thirty", 0)
: 十の位を処理して「三十」を生成します。FriendlyInteger(0, "Two", 0)
: 単位の桁を処理し、「Two」を生成します。IntegerToWritten
関数はエントリ ポイントとして機能し、メインの変換のために FriendlyInteger
を呼び出す前に、ゼロや負の数値などの特殊なケースを処理します。
この再帰的アプローチと事前定義された配列の使用を組み合わせることで、大規模なルックアップ テーブルを必要とせずに整数を記述形式に変換するための効率的でスケーラブルなソリューションが提供され、幅広い数値入力の処理に適しています。
以上がルックアップ テーブルを使用せずに整数をその記述形式に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。