Advertisement
aluin

NumberAsWords

Apr 11th, 2014
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. using System;
  2.  
  3. /*11* Write a program that converts a number in the range [0…999] to words, corresponding to the English pronunciation. Examples:
  4. 0 Zero
  5. 9 Nine
  6. 19 Nineteen
  7. 25 Twenty five
  8. 98 Ninety eight
  9. 273 Two hundred and seventy three
  10. 400 Four hundred
  11. 501 Five hundred and one
  12. 617 Six hundred and seventeen
  13. 999 Nine hundred and ninety nine
  14. */
  15.  
  16. class NumberAsWords
  17. {
  18. static void Main()
  19. {
  20. Console.Write("Enter a number [0…999]: ");
  21. string input = Console.ReadLine();
  22. int number = int.Parse(input);
  23.  
  24. string[] units = { "Zero", "one", "two", "tree", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven",
  25. "twelve", "thirdteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  26. string[] tens = { "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
  27.  
  28. int remainder = number % 100;
  29. int numDiv = number / 10;
  30. string hundreds = units[number / 100];
  31.  
  32. if (number >= 0 && number < 100) // [0...99]
  33. {
  34. if (number >=0 && number < 20) // 0... 20
  35. {
  36. Console.WriteLine("{0}", units[number]);
  37. }
  38. else if (number % 10 == 0) //20,30... 90
  39. {
  40. Console.WriteLine("{0}", tens[numDiv - 2]);
  41. }
  42. else if (number >= 20 && number < 100) // 21 to 99
  43. {
  44. Console.WriteLine("{0} {1}", tens[numDiv - 2], units[number % 10]);
  45. }
  46. }
  47. else
  48. {
  49. if (remainder == 0) // 100,200,300...900
  50. {
  51. Console.WriteLine("{0} hundred", hundreds);
  52. }
  53. else if (remainder > 0 && remainder < 20) //from x00 to x20
  54. {
  55. Console.WriteLine("{0} hundred and {1}", hundreds, units[remainder]);
  56. }
  57. else if (remainder % 10 == 0) // x10, x20... x90
  58. {
  59. Console.WriteLine("{0} hundred and {1}", hundreds, tens[remainder / 10 - 2]);
  60. }
  61. else if (remainder > 20 && remainder < 100) //from x20 to x99
  62. {
  63. Console.WriteLine("{0} hundred and {1} {2}", hundreds, tens[remainder / 10 - 2], units[remainder % 10]);
  64. }
  65. }
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement