using System; using System.Collections.Generic; using System.Text; namespace HJ42 { internal class Program { static Dictionary<int, string> numberMap01 = new Dictionary<int, string>() { {1,"one" }, {2,"two"}, {3,"three"}, {4,"four"}, {5,"five" }, {6,"six" }, {7,"seven" }, {8,"eight" }, {9,"nine" }, }; static Dictionary<int, string> numberMap02 = new Dictionary<int, string>() { {2,"twenty"}, {3,"thirty"}, {4,"forty"}, {5,"fifty" }, {6,"sixty" }, {7,"seventy" }, {8,"eighty" }, {9,"ninety" }, }; //eleven static Dictionary<int, string> numberMap03 = new Dictionary<int, string>() { {10,"ten"}, {11,"eleven"}, {12,"twelve"}, {13,"thirteen"}, {14,"fourteen"}, {15,"fifteen" }, {16,"sixteen" }, {17,"seventeen" }, {18,"eighteen" }, {19,"nineteen" }, }; static void Main(string[] args) { long inputLong = long.Parse(Console.ReadLine()); long xBillion = inputLong / 1000000000; long xMillion = inputLong % 100000000 / 1000000; long xThousand = inputLong % 100000000 % 1000000 / 1000; long xHundred = inputLong % 100000000 % 1000000 % 1000; StringBuilder sb = new StringBuilder(); string str = string.Empty; if (xBillion != 0) { sb.Append(GetHundredWords(xBillion) + " billion "); } if (xMillion != 0) { sb.Append(GetHundredWords(xMillion) + " million "); } if (xThousand != 0) { sb.Append(GetHundredWords(xThousand) + " thousand "); } if (xHundred != 0) { sb.Append(GetHundredWords(xHundred)); } Console.WriteLine(sb.ToString().Trim()); } static string GetHundredWords(long inputLong) { int a = (int)(inputLong / 100); int b = (int)(inputLong % 100 / 10); int c = (int)(inputLong % 100 % 10); string str = string.Empty; if (a != 0) { str += $"{numberMap01[a]} hundred"; } if (b == 1) { int b2 = (int)(inputLong % 100); if (a==0) { str += $"{numberMap03[b2]}"; } else { str += $" and {numberMap03[b2]}"; } return str; } if (b != 0) { if(a == 0) { str += $"{numberMap02[b]}"; } else { str += $" and {numberMap02[b]}"; } if (c != 0) { str += $" {numberMap01[c]}"; } return str; } if (c != 0) { if (a==0) { str += $"{numberMap01[c]}"; } else { str += $" and {numberMap01[c]}"; } } return str; } } }