Advertisement
milen8204

05.11.NumberAsWords

Mar 21st, 2014
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.47 KB | None | 0 0
  1. using System;
  2. /*Write a program that converts a number in the range [0…999] to words,
  3.  * 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. class NumberAsWords
  19. {
  20.     static void Main()
  21.     {
  22.         int numberA = 0;
  23.  
  24.         Console.WriteLine("Enter an integer between 0 and 999:");
  25.         do
  26.         {
  27.             if (int.TryParse(Console.ReadLine(), out numberA) && (numberA >= 0) && (numberA <= 999))
  28.             {
  29.                 break;
  30.             }
  31.             else
  32.             {
  33.                 Console.WriteLine("You have entered an invalid data!");
  34.             }
  35.         } while (true);
  36.  
  37.         int firstDigit = numberA / 100; //gets first digit of nuber
  38.         int secondDigit = (numberA / 10) % 10;//gets second digit of nuber
  39.         int thirdDigit = numberA - (firstDigit * 100) - (secondDigit * 10); //gets third digit of nuber
  40.         string firstDigitString = "";
  41.         string secondDigitString = "";
  42.         string thirdDigitString = "";
  43.         string caseThereIslessThan20 = "";
  44.  
  45.         switch (firstDigit) //geting string for the first digit
  46.         {
  47.             case 0: firstDigitString = ""; break;
  48.             case 1: firstDigitString = "One hundred"; break;
  49.             case 2: firstDigitString = "Two hundred"; break;
  50.             case 3: firstDigitString = "Three hundred"; break;
  51.             case 4: firstDigitString = "Four hundred"; break;
  52.             case 5: firstDigitString = "Five hundred"; break;
  53.             case 6: firstDigitString = "Six hundred"; break;
  54.             case 7: firstDigitString = "Seven hundred"; break;
  55.             case 8: firstDigitString = "Eight hundred"; break;
  56.             case 9: firstDigitString = "Nine hundred"; break;
  57.             default: Console.WriteLine("Error occurred!"); break;
  58.         }
  59.  
  60.         switch (secondDigit) //geting string for the second digit
  61.         {
  62.             case 0: secondDigitString = ""; break;
  63.             case 1: secondDigitString = "Ten"; break;
  64.             case 2: secondDigitString = "Twenty"; break;
  65.             case 3: secondDigitString = "Thirty"; break;
  66.             case 4: secondDigitString = "Fourty"; break;
  67.             case 5: secondDigitString = "Fifty"; break;
  68.             case 6: secondDigitString = "Sixty"; break;
  69.             case 7: secondDigitString = "Seventy"; break;
  70.             case 8: secondDigitString = "Eighty"; break;
  71.             case 9: secondDigitString = "Ninety"; break;
  72.             default: Console.WriteLine("Errorr occurred!"); break;
  73.         }
  74.        
  75.         switch (thirdDigit) //geting string for the third digit
  76.         {
  77.             case 0: thirdDigitString = ""; break;
  78.             case 1: thirdDigitString = "One"; break;
  79.             case 2: thirdDigitString = "Two"; break;
  80.             case 3: thirdDigitString = "Three"; break;
  81.             case 4: thirdDigitString = "Four"; break;
  82.             case 5: thirdDigitString = "Five"; break;    
  83.             case 6: thirdDigitString = "Six"; break;  
  84.             case 7: thirdDigitString = "Seven"; break;  
  85.             case 8: thirdDigitString = "Eight"; break;
  86.             case 9: thirdDigitString = "Nine"; break;
  87.             default: Console.WriteLine("Errorr occurred!"); break;
  88.         }
  89.  
  90.         if (secondDigit < 2) //chaks if there is 20 and less in number
  91.         {
  92.  
  93.             switch (numberA - ((numberA / 100) * 100))
  94.             /*(numberA/100)*100 is NOT equal to numberA (if numberA is int)
  95.              * I when i did the operation had lost the second and the third digit and after that I draw the
  96.              * result from number and I got the second and the third digit */
  97.             {
  98.                 case 0: caseThereIslessThan20 = "Zero"; break;
  99.                 case 1: caseThereIslessThan20 = "One"; break;
  100.                 case 2: caseThereIslessThan20 = "Two"; break;
  101.                 case 3: caseThereIslessThan20 = "Three"; break;
  102.                 case 4: caseThereIslessThan20 = "Four"; break;
  103.                 case 5: caseThereIslessThan20 = "Five"; break;
  104.                 case 6: caseThereIslessThan20 = "Six"; break;
  105.                 case 7: caseThereIslessThan20 = "Seven"; break;
  106.                 case 8: caseThereIslessThan20 = "Eight"; break;
  107.                 case 9: caseThereIslessThan20 = "Nine"; break;
  108.                 case 10: caseThereIslessThan20 = "Ten"; break;
  109.                 case 11: caseThereIslessThan20 = "Eleven"; break;
  110.                 case 12: caseThereIslessThan20 = "Twelve"; break;
  111.                 case 13: caseThereIslessThan20 = "Thirdtheen"; break;
  112.                 case 14: caseThereIslessThan20 = "Fourteen"; break;
  113.                 case 15: caseThereIslessThan20 = "Fiveteen"; break;
  114.                 case 16: caseThereIslessThan20 = "Sixteen"; break;
  115.                 case 17: caseThereIslessThan20 = "Seventeen"; break;
  116.                 case 18: caseThereIslessThan20 = "Eightteen"; break;
  117.                 case 19: caseThereIslessThan20 = "Nineteen"; break;
  118.                 default: Console.WriteLine("Errorr occurred!"); break;
  119.             }
  120.         }
  121.        
  122.         //printing results for diferent cases
  123.         Console.Clear();
  124.         Console.WriteLine("number\tnumber as words");
  125.         if (firstDigit == 0 && secondDigit < 2)
  126.         {
  127.             Console.WriteLine("{0}\t{1}", numberA, caseThereIslessThan20);
  128.         }
  129.         else if (firstDigit == 0 && secondDigit >= 2)
  130.         {
  131.             Console.WriteLine("{0}\t{1} {2}", numberA, secondDigitString, thirdDigitString.ToLower());
  132.         }
  133.         else if (firstDigit > 0 && secondDigit < 2)
  134.         {
  135.             if (secondDigit == 0 && thirdDigit == 0)
  136.             {
  137.                 Console.WriteLine("{0}\t{1}", numberA, firstDigitString);
  138.             }
  139.             else
  140.             {
  141.                 Console.WriteLine("{0}\t{1} and {2}", numberA, firstDigitString, caseThereIslessThan20.ToLower());
  142.             }
  143.         }
  144.         else if (firstDigit > 0 && secondDigit >= 2)
  145.         {
  146.             Console.WriteLine("{0}\t{1} and {2} {3}", numberA, firstDigitString, secondDigitString.ToLower(), thirdDigitString.ToLower());
  147.         }
  148.         else
  149.         {
  150.             Console.WriteLine("I can not belive that is happening!");
  151.         }
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement