Advertisement
GogoK

Number as Words

Feb 17th, 2015
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.96 KB | None | 0 0
  1. //  Write a program that converts a number in the range [0…999] to words, corresponding to the English pronunciation.
  2. using System;
  3.  
  4. class NumberAsWords
  5. {
  6.     static void Main()
  7.     {
  8.         int number = 0;
  9.         while (true)
  10.         {
  11.             Console.WriteLine("Enter value between 0 and 999!");
  12.             string userInput = Console.ReadLine();
  13.             number = 0;
  14.             if (int.TryParse(userInput, out number) && number >= 0 && number <= 999)
  15.             {
  16.                 break;
  17.             }
  18.         }
  19.  
  20.         string and = "and";
  21.         string space = " ";
  22.         string oneHundred = "Hundred";
  23.         string zero = "Zero";
  24.  
  25.         int firstDigit = 0;
  26.         int tenToNineteen = 0;
  27.         int secondDigit = 0;
  28.         int thirdDigit = 0;
  29.  
  30.         if (number == 0 || number == 100)
  31.         {
  32.             if (number == 0)
  33.             {
  34.                 Console.WriteLine(zero);
  35.                 return;
  36.             }
  37.             else
  38.             {
  39.                 Console.WriteLine(oneHundred);
  40.                 return;
  41.             }
  42.         }
  43.         else if (number >= 1 && number <= 9)
  44.         {
  45.             Units(number);    
  46.             Console.WriteLine();
  47.             return;
  48.         }
  49.         else if (number >=10 && number <= 19)
  50.         {
  51.             TenToNineteen(number);
  52.             Console.WriteLine();
  53.             return;
  54.         }
  55.         else if (number >= 20 && number <= 99)
  56.         {
  57.             if (number % 10 == 0)
  58.             {
  59.                 number /= 10;
  60.                 Tens(number);
  61.                 Console.WriteLine();
  62.                 return;
  63.             }
  64.             else
  65.             {
  66.                 firstDigit = number % 10;
  67.                 secondDigit = number / 10;
  68.                 Tens(secondDigit);
  69.                 Console.Write(space);
  70.                 Units(firstDigit);
  71.                 Console.WriteLine();
  72.                 return;
  73.             }
  74.  
  75.         }
  76.         else if (number > 100)
  77.         {
  78.             if (number % 100 == 0)
  79.             {
  80.                 number /= 100;
  81.                 Units(number);
  82.                 Console.WriteLine(space + oneHundred);
  83.                 return;
  84.             }
  85.             else if (number % 10 == 0)
  86.             {
  87.                 thirdDigit = number / 100;
  88.                 secondDigit = (number / 10) % 10;
  89.                 Units(thirdDigit);
  90.                 Console.Write(" {0} {1} ", oneHundred, and);
  91.                 Tens(secondDigit);
  92.                 Console.WriteLine();
  93.                 return;
  94.             }
  95.             else if (number % 100 >= 11 && number % 100 <= 19)
  96.             {
  97.                 tenToNineteen = number % 100;
  98.                 thirdDigit = number / 100;
  99.                 Units(thirdDigit);
  100.                 Console.Write(" {0} {1} ", oneHundred, and);
  101.                 TenToNineteen(tenToNineteen);
  102.                 Console.WriteLine();
  103.                 return;
  104.             }
  105.             else if ((number / 10) % 10 == 0)
  106.             {
  107.                 firstDigit = number % 10;
  108.                 thirdDigit = number / 100;
  109.                 Units(thirdDigit);
  110.                 Console.Write(" {0} {1} ", oneHundred, and);
  111.                 Units(firstDigit);
  112.                 Console.WriteLine();
  113.                 return;
  114.             }
  115.             else
  116.             {
  117.                 firstDigit = number % 10;
  118.                 secondDigit = (number / 10) % 10;
  119.                 thirdDigit = number / 100;
  120.                 Units(thirdDigit);
  121.                 Console.Write(" {0} {1} ", oneHundred, and);
  122.                 Tens(secondDigit);
  123.                 Console.Write(space);
  124.                 Units(firstDigit);
  125.                 Console.WriteLine();
  126.                 return;
  127.             }
  128.         }
  129.     }
  130.  
  131.     static void Units(int units)
  132.     {
  133.         switch (units)
  134.         {
  135.             //case "0": Console.Write("Zero"); break;
  136.             case 1: Console.Write("One"); break;
  137.             case 2: Console.Write("Two"); break;
  138.             case 3: Console.Write("Three"); break;
  139.             case 4: Console.Write("Four"); break;
  140.             case 5: Console.Write("Five"); break;
  141.             case 6: Console.Write("Six"); break;
  142.             case 7: Console.Write("Seven"); break;
  143.             case 8: Console.Write("Eight"); break;
  144.             case 9: Console.Write("Nine"); break;
  145.         }
  146.     }
  147.     static void TenToNineteen(int tenToNineteen)
  148.     {
  149.         switch (tenToNineteen)
  150.         {
  151.             case 10: Console.Write("Ten"); break;
  152.             case 11: Console.Write("Еleven"); break;
  153.             case 12: Console.Write("Тwelve"); break;
  154.             case 13: Console.Write("Thirteen"); break;
  155.             case 14: Console.Write("Fourteen"); break;
  156.             case 15: Console.Write("Fifteen"); break;
  157.             case 16: Console.Write("Sixteen"); break;
  158.             case 17: Console.Write("Seventeen"); break;
  159.             case 18: Console.Write("Eighteen"); break;
  160.             case 19: Console.Write("Nineteen"); break;
  161.         }
  162.     }
  163.     static void Tens(int tens)
  164.     {
  165.         switch (tens)
  166.         {
  167.             case 1: Console.Write("Ten"); break;
  168.             case 2: Console.Write("Twenty"); break;
  169.             case 3: Console.Write("Thirty"); break;
  170.             case 4: Console.Write("Forty"); break;
  171.             case 5: Console.Write("Fifty"); break;
  172.             case 6: Console.Write("Sixty"); break;
  173.             case 7: Console.Write("Seventy"); break;
  174.             case 8: Console.Write("Eighty"); break;
  175.             case 9: Console.Write("Ninety"); break;
  176.         }
  177.     }
  178. }
  179.  
  180. // Examples:
  181. //numbers   number as words
  182.  
  183. //0         Zero
  184. //9         Nine
  185. //10        Ten
  186. //12        Twelve
  187. //19        Nineteen
  188. //25        Twenty five
  189. //98        Ninety eight
  190. //273       Two hundred and seventy three
  191. //400       Four hundred
  192. //501       Five hundred and one
  193. //617       Six hundred and seventeen
  194. //711       Seven hundred and eleven
  195. //999       Nine hundred and ninety nine
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement