Advertisement
Guest User

Pr11NumberWords

a guest
Jun 22nd, 2015
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.72 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. // Write a program that converts a number in the range [0…999] to words,
  8. // corresponding to the English pronunciation.
  9. class Pr11NumberWords
  10. {
  11.     static void Main(string[] args)
  12.     {
  13.         Console.Write("Enter how many tests you would like to run: ");
  14.         int tests = int.Parse(Console.ReadLine());
  15.         for (int t = 0; t < tests; t++)
  16.         {
  17.             // Res
  18.             string[] ones = { "zero", "one", "two", "three", "four", "five","six", "seven",
  19.                               "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen",
  20.                               "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  21.  
  22.             string[] tens = { "twenty", "thirty", "forty", "fifty", "sixty",
  23.                               "seventy", "eighty", "ninety" };
  24.  
  25.             // Input
  26.             string input = Console.ReadLine();
  27.             StringBuilder result = new StringBuilder();
  28.             short number = short.Parse(input);
  29.             short digit1s = (short) (number % 10);
  30.             short digitTeens = (short) (number % 100);
  31.             short digit10s = (short) (digitTeens / 10);
  32.             short digit100s = (short) (number / 100);
  33.  
  34.             // Zero
  35.             if (number == 0)
  36.             {
  37.                 result.Append(ones[0]);
  38.             }
  39.  
  40.             // Hundreds
  41.             if (digit100s != 0)
  42.             {
  43.                 result.Append(ones[digit100s]);
  44.             }
  45.  
  46.             // Post hundreds
  47.             if (digit100s != 0)
  48.             {
  49.                 result.Append(" hundred");
  50.                 if (digitTeens != 0)
  51.                 {
  52.                     result.Append(" and ");
  53.                 }
  54.             }
  55.  
  56.             // Teens
  57.             if (digitTeens > 9 && digitTeens < 20)
  58.             {
  59.                 result.Append(ones[digitTeens]);
  60.             }
  61.  
  62.             // Non-teens
  63.             else
  64.             {
  65.                 // Tens
  66.                 if (digit10s > 1)
  67.                 {
  68.                     result.Append(tens[digit10s - 2]);
  69.                 }
  70.  
  71.                 // Post tens
  72.                 if (digit10s != 0 && digit1s != 0)
  73.                 {
  74.                     result.Append(" ");
  75.                 }
  76.  
  77.                 // Ones
  78.                 if (digit1s != 0)
  79.                 {
  80.                     result.Append(ones[digit1s]);
  81.                 }
  82.             }
  83.  
  84.             // Capitalize first letter
  85.             result[0] = (char) (result[0] - 32);
  86.             string output = result.ToString();
  87.  
  88.             // Output
  89.             Console.WriteLine(output);
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement