namespace _07.Numbers_to_Words { using System; using System.Collections.Generic; using System.Linq; public class NumbersToWords { public static void Main() { var n = int.Parse(Console.ReadLine()); EndResult(n); } static void EndResult(int n) { for (int i = 0; i < n; i++) { var number = int.Parse(Console.ReadLine()); if (number > 999) { Console.WriteLine("too large"); } else if (number < -999) { Console.WriteLine("too small"); } else { var numberInLetterz = string.Empty; if (number < 0) { numberInLetterz = Letterize(Math.Abs(number)); Console.WriteLine($"minus {numberInLetterz}"); } else { numberInLetterz = Letterize(number); Console.WriteLine(numberInLetterz); } } } } static string Letterize(int number) { string[] ones = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; string[] teens = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; string[] tens = { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; var result = string.Empty; var hundreds = 0; if (number > 99 && number < 1000) { if (number % 100 == 0) { hundreds = number / 100; result = $"{ones[hundreds]}-hundred"; } else { hundreds = number / 100; var ten = number % 100; var lastTwoDigits = 0; if (ten > 0 && ten < 10) { lastTwoDigits = ten % 10; result = $"{ones[hundreds]}-hundred and {ones[lastTwoDigits]}"; } else if (ten > 9 && ten < 20) { lastTwoDigits = ten % 10; result = $"{ones[hundreds]}-hundred and {teens[lastTwoDigits]}"; } else if (ten >= 20 && ten < 100) { if (ten % 10 == 0) { lastTwoDigits = ten / 10; result = $"{ones[hundreds]}-hundred and {tens[lastTwoDigits]}"; } else { lastTwoDigits = ten / 10; result = $"{ones[hundreds]}-hundred and {tens[lastTwoDigits]} {ones[hundreds]}"; } } } } return result; } } }