แปลงแต่ละหลักของเลขเป็นคำอ่านภาษาอังกฤษ (zero, one, two...)
อัลกอริทึม
- เตรียมอาร์เรย์คำอ่าน 0-9
- แยกแต่ละหลักด้วย modulo 10 และหาร 10
- เก็บหลักต่างๆ ในอาร์เรย์ (ได้ลำดับกลับ)
- พิมพ์จากหลังมาหน้า
ตัวอย่างโค้ดเต็ม
using System;
using System.Collections.Generic;
using System.Text;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int val, next, num_digits;
int[] a = new int[10];
// คำอ่าน 0-9
string[] digits_words = {
"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine"
};
val = 4677;
Console.WriteLine("Number: " + val);
Console.Write("Number (words): ");
next = 0;
num_digits = 0;
do {
next = val % 10;
a[num_digits] = next;
num_digits++;
val = val / 10;
} while (val > 0);
num_digits--;
for (; num_digits >= 0; num_digits--)
Console.Write(digits_words[a[num_digits]] + " ");
Console.ReadLine();
}
}
}
ผลลัพธ์
Number: 4677 Number (words): four six seven seven
หมายเหตุ: โค้ดนี้อ่านทีละหลัก (digit by digit) ไม่ใช่แปลงเป็นคำอ่านเต็ม (four thousand six hundred seventy seven)