Aborigenius

NumbersToWords

Jun 16th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.53 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace NumberToWords
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int number = 0;
  14.             int N = int.Parse(Console.ReadLine());
  15.             for (int i = 0; i < N; i++)
  16.             {
  17.                 number = int.Parse(Console.ReadLine());
  18.  
  19.  
  20.                 if (number > 0 && number > 999)
  21.                 {
  22.                     Console.WriteLine("too large");
  23.                 }
  24.                 else if (number < -999)
  25.                 {
  26.                     Console.WriteLine("too small");
  27.                 }
  28.                 else if (number > -100 && number < 100)
  29.                 {
  30.                 }
  31.                 else
  32.                 {
  33.                     Console.WriteLine(NumberToWords(number));
  34.                 }
  35.             }
  36.         }
  37.         public static string NumberToWords(int number)
  38.         {
  39.  
  40.             if (number == 0)
  41.                 return "zero";
  42.  
  43.             if (number < 0)
  44.  
  45.                 return "minus " + NumberToWords(Math.Abs(number));
  46.  
  47.             string words = "";
  48.  
  49.             if ((number / 1000000) > 0)
  50.             {
  51.                 words += NumberToWords(number / 1000000) + " million ";
  52.                 number %= 1000000;
  53.             }
  54.  
  55.             if ((number / 1000) > 0)
  56.             {
  57.                 words += NumberToWords(number / 1000) + " thousand ";
  58.                 number %= 1000;
  59.             }
  60.  
  61.             if ((number / 100) > 0)
  62.             {
  63.                 words += NumberToWords(number / 100) + "-hundred ";
  64.                 number %= 100;
  65.             }
  66.  
  67.             if (number > 0)
  68.             {
  69.                 if (words != "")
  70.                     words += "and ";
  71.  
  72.                 var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  73.                 var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
  74.  
  75.                 if (number < 20)
  76.                     words += unitsMap[number];
  77.                 else
  78.                 {
  79.                     words += tensMap[number / 10];
  80.                     if ((number % 10) > 0)
  81.                         words += " " + unitsMap[number % 10];
  82.                 }
  83.             }
  84.             return words;
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment