Advertisement
G_Burlakova

NumbersInWords

Mar 22nd, 2014
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.95 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. class NumbersWords
  8. {
  9.     static void Main(string[] args)
  10.     {
  11.         string numberStr;
  12.         int number;
  13.         while (true)
  14.         {
  15.             Console.Write("Enter number: ");
  16.             numberStr = Console.ReadLine();
  17.             try
  18.             {          
  19.                 number = int.Parse(numberStr);
  20.                 if (number > 999 || number < 0)
  21.                 {
  22.                     Console.WriteLine("Number out of range. Try again.");
  23.                     Console.WriteLine();
  24.                     continue;
  25.                 }
  26.                 else
  27.                 {
  28.                     break;
  29.                 }
  30.             }
  31.             catch (FormatException)
  32.             {
  33.        
  34.                 Console.WriteLine("Wrong format. Try Again.");
  35.                 Console.WriteLine();
  36.             }
  37.         }
  38.        
  39.         int arrayIndex = 0;
  40.         int[] digits = new int[3];
  41.         while (number != 0)
  42.         {
  43.             digits[arrayIndex] = number % 10;
  44.             number = number / 10;
  45.             arrayIndex++;
  46.         }
  47.         digits = digits.Reverse().ToArray();
  48.         string numberInWords = "";
  49.         string[] hundreds =
  50.             {"One hundred", "Two hundred", "Three hundred","Four hundred","Five hundred", "Six hundred","Seven hundred", "Eight hundred", "Nine hundred"};
  51.         string[] tensTwentyNinety =
  52.                 {"Twenty", "Thrirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eghthy", "Ninety"};
  53.         string[] tensTenNineteen =
  54.             {"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
  55.         string[] units =
  56.             {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
  57.  
  58.         if (digits[0] != 0)
  59.         {
  60.             numberInWords = numberInWords + hundreds[digits[0] - 1] + " ";
  61.             if (digits[1] != 0 || digits[2] != 0)
  62.             {
  63.                 numberInWords = numberInWords + "and ";
  64.             }
  65.         }
  66.  
  67.         if (digits[1] != 0)
  68.         {
  69.             if (digits[1] > 1 && digits[1] < 10)
  70.             {
  71.                 numberInWords = numberInWords + tensTwentyNinety[digits[1] - 2] + " ";
  72.             }
  73.             else
  74.             {
  75.                 if (numberInWords == "")
  76.                 {
  77.                     numberInWords = numberInWords + tensTenNineteen[digits[2]];
  78.                 }
  79.                 else
  80.                 {
  81.                     numberInWords = numberInWords + tensTenNineteen[digits[2]].ToLower();
  82.                 }  
  83.             }
  84.         }
  85.  
  86.         if (digits[1] != 1 && digits[2] != 0)
  87.         {
  88.             numberInWords = numberInWords + units[digits[2]];  
  89.         }
  90.         else if (numberInWords == "")
  91.         {
  92.             numberInWords = numberInWords + units[digits[2]];
  93.         }
  94.         Console.WriteLine(numberInWords);
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement