Advertisement
nmnikolov

11. NumberAsWordsArrays

Jul 5th, 2014
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.75 KB | None | 0 0
  1. using System;
  2.  
  3. //Write a program that converts a number in the range [0…999] to words, corresponding to the English pronunciation. Examples:
  4. // | numbers | number as words               |
  5. // |       0 | Zero                          |
  6. // |       9 | Nine                          |
  7. // |      10 | Ten                           |
  8. // |      12 | Twelve                        |
  9. // |      19 | Nineteen                      |
  10. // |      25 | Twenty five                   |
  11. // |      98 | Ninety eight                  |
  12. // |     273 | Two hundred and seventy three |
  13. // |     400 | Four hundred                  |
  14. // |     501 | Five hundred and one          |
  15. // |     617 | Six hundred and seventeen     |
  16. // |     711 | Seven hundred and eleven      |
  17. // |     999 | Nine hundred and ninety nine  |
  18.  
  19. class NumberAsWords
  20. {
  21.     static void Main()
  22.     {
  23.         Console.Write("Input number in the range [0...999]: ");
  24.         int number;
  25.         bool parse = int.TryParse(Console.ReadLine(), out number);
  26.  
  27.         if (!parse || number < 0 || number > 999)
  28.         {
  29.             Console.WriteLine("invalid input");
  30.             return;
  31.         }
  32.  
  33.         int hundredsDigit = (number / 100) % 10;
  34.         int tensDigit = (number / 10) % 10;
  35.         int unitsDigit = number % 10;
  36.  
  37.         string[] unitsWords = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
  38.         string[] tensWords = { "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
  39.         string[] hundredsWords = { "One hundred", "Two hundred", "Three hundred", "Four hundred", "Five hundred", "Six hundred", "Seven hundred", "Eight hundred", "Nine hundred"};
  40.  
  41.         if (number > 99)
  42.         {
  43.             Console.Write("{0}", hundredsWords[hundredsDigit - 1]);
  44.             number = number % 100;  //remove the hundreds
  45.             if (number > 19)
  46.             {
  47.                 Console.Write(" and {0}", tensWords[tensDigit - 2].ToLower());
  48.                 if (unitsDigit > 0)
  49.                 {
  50.                     Console.Write(" {0}", unitsWords[unitsDigit].ToLower());
  51.                 }
  52.             }
  53.             else if (number > 0)
  54.             {
  55.                 Console.Write(" and {0}", unitsWords[number].ToLower());
  56.             }
  57.         }
  58.         else if (number > 19)
  59.         {
  60.             Console.Write("{0}", tensWords[tensDigit - 2]);
  61.             if (unitsDigit > 0)
  62.             {
  63.                 Console.Write(" {0}", unitsWords[unitsDigit].ToLower());
  64.             }
  65.         }
  66.         else
  67.         {
  68.             Console.Write("{0}", unitsWords[number]);
  69.         }
  70.         Console.WriteLine();
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement