ホームページ >バックエンド開発 >C++ >C# で整数を同等の表記数値に効率的に変換するにはどうすればよいでしょうか?

C# で整数を同等の表記数値に効率的に変換するにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-12 19:56:44375ブラウズ

How Can We Efficiently Convert Integers to Their Written Number Equivalents in C#?

整数から英数字への効率的な変換

整数をリテラル表現に変換することは、一般的なプログラミング作業です。ただし、大規模なルックアップ テーブルを使用せずに効率を達成するのは困難な場合があります。この記事では、この制限を克服する 1 つの方法を検討します。

HumanFriendlyInteger クラス

ソリューションの中核は、HumanFriendlyInteger というクラスです。これには、さまざまな額面の値 (1、10 など) を表す一連の配列と、リテラル表現を再帰的に構築する FriendlyInteger と呼ばれるメソッドが含まれています。

リテラル数値を再帰的に構築します

FriendlyInteger メソッドは再帰的に動作してリテラル数値を構築します。プロセスは次のとおりです:

  1. 基本的なケース: 入力 n が 0 の場合、現在の leftDigits (左端の桁を処理するために使用) を返します。
  2. 単位と 10: n が 10 未満の場合は、単位配列を直接使用してリテラル形式を取得します。 10 から 19 までの値の場合、10 の位の配列が使用されます。
  3. 10 の位: n が 20 ~ 99 の場合、n % 10 (1 の位) を再帰的に変換し、その先頭に 10 の位の表現 (例: "Thirty") を付加します。
  4. 百の位: は十の位のステップと似ており、n % 100 (十と一の位) を再帰的に変換し、その前に百の位の表現を付加します。
  5. 千以上: n % 1000 を再帰的に変換し、適切な 1000 番目のグループ表現 (例: "Thousand"、"Million") を追加します。 n % 1000 が 0 の場合、再帰は終了します。

ヘルパーメソッド

IntegerToWritten メソッドは、負の数と 0 の特殊なケースを処理し、「ゼロ」を返すラッパー関数です。

次の使用例を考えてみましょう:

<code class="language-csharp">using HumanFriendlyInteger;

public class Program
{
    public static void Main()
    {
        int number = 21;
        string writtenNumber = IntegerToWritten(number);

        Console.WriteLine($"{number} 的文字形式:{writtenNumber}");
    }
}</code>

このコードは次のように出力します:

<code>21 的文字形式:Twenty One</code>

結論

この再帰的アプローチは、大規模なルックアップ テーブルに依存せずに整数をリテラル形式に変換する効率的な方法を提供します。このアプローチでは、問題を小さな部分に分割することで、最小限のオーバーヘッドで望ましい結果が得られます。

以上がC# で整数を同等の表記数値に効率的に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。