Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Kita Boleh Menukarkan Integer dengan Cekap kepada Setara Nombor Tertulisnya dalam C#?
Menukar integer kepada perwakilan literalnya ialah tugas pengaturcaraan biasa. Walau bagaimanapun, mencapai kecekapan tanpa menggunakan jadual carian besar boleh mencabar. Artikel ini meneroka satu cara untuk mengatasi had ini.
Inti penyelesaian ialah kelas yang dipanggil HumanFriendlyInteger
. Ia mengandungi set tatasusunan untuk mewakili nilai muka yang berbeza (cth. satu, puluhan, dsb.), dan kaedah yang dipanggil FriendlyInteger
yang membina perwakilan literal secara rekursif.
FriendlyInteger
beroperasi secara rekursif untuk membina nombor tersurat. Prosesnya adalah seperti berikut:
n
ialah 0, kembalikan semasa leftDigits
(digunakan untuk mengendalikan digit paling kiri). n
kurang daripada 10, gunakan tatasusunan unit terus untuk mendapatkan semula bentuk tersurat. Untuk nilai antara 10 dan 19, ia menggunakan tatasusunan puluhan. n
antara 20 dan 99, tukarkan secara rekursif n % 10
(digit satu) dan tambahkannya dengan perwakilan digit puluhan (mis., "Tiga Puluh"). n % 100
(puluhan dan satu digit) dan menambah perwakilan ratusan digit di hadapannya. n % 1000
secara rekursif dan menambahkan perwakilan kumpulan keseribu yang sesuai (cth., "Ribu", "Juta"). Jika n % 1000
ialah 0, rekursi tamat. IntegerToWritten
ialah fungsi pembalut yang mengendalikan kes khas nombor negatif dan 0, mengembalikan "Sifar".
Pertimbangkan contoh penggunaan berikut:
<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>
Kod ini akan mengeluarkan:
<code>21 的文字形式:Twenty One</code>
Pendekatan rekursif ini menyediakan cara yang cekap untuk menukar integer kepada bentuk literalnya tanpa bergantung pada jadual carian yang besar. Dengan memecahkan masalah kepada bahagian yang lebih kecil, pendekatan ini mencapai hasil yang diinginkan dengan overhed yang minimum.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Menukarkan Integer dengan Cekap kepada Setara Nombor Tertulisnya dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!