Advertisement
3vo

Problem 10. Number as Words / switch

3vo
Oct 25th, 2022
743
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Write a program that converts a number in the range [0…999] to words,
  2. // corresponding to the English pronunciation.
  3.  
  4. // Examples:
  5. // num  word:
  6. // 0    Zero
  7. // 9    Nine
  8. // 10   Ten
  9. // 12   Twelve
  10. // 19   Nineteen
  11. // 25   Twenty five
  12. // 98   Ninety eight
  13. // 98   Ninety eight
  14. // 273  Two hundred and seventy three
  15. // 400  Four hundred
  16. // 501  Five hundred and one
  17. // 617  Six hundred and seventeen
  18. // 711  Seven hundred and eleven
  19. // 999  Nine hundred and ninety nine
  20. let input = ['211'];
  21.  
  22. let print = this.print || console.log;
  23. let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);
  24.  
  25. let stringInput = gets();
  26. let resultString = '';
  27.  
  28. if (stringInput.length === 3) {
  29.     const firstDigitUnique = +stringInput[0];
  30.     const secondDigit = +stringInput[1];
  31.     const thirdDigit = +stringInput[2];
  32.  
  33.     switch (firstDigitUnique) {
  34.         case 1:
  35.             resultString += 'one hundred';
  36.             break;
  37.         case 2:
  38.             resultString += 'two hundred';
  39.             break;
  40.         case 3:
  41.             resultString += 'three hundred';
  42.             break;
  43.         case 4:
  44.             resultString += 'four hundred';
  45.             break;
  46.         case 5:
  47.             resultString += 'five hundred';
  48.             break;
  49.         case 6:
  50.             resultString += 'six hundred';
  51.             break;
  52.         case 7:
  53.             resultString += 'seven hundred';
  54.             break;
  55.         case 8:
  56.             resultString += 'eight hundred';
  57.             break;
  58.         case 9:
  59.             resultString += 'nine hundred';
  60.             break;
  61.     }
  62.  
  63.     if (secondDigit === 0 && thirdDigit === 0) {
  64.         stringInput = '';
  65.     } else {
  66.         resultString += ' and';
  67.         stringInput = secondDigit + '' + thirdDigit;
  68.  
  69.     }
  70. }
  71.  
  72. if (stringInput.length === 2) {
  73.     const number = +stringInput;
  74.  
  75.     if (number < 20) {
  76.         switch (number) {
  77.             case 1:
  78.                 resultString += ' one';
  79.                 break;
  80.             case 2:
  81.                 resultString += ' two';
  82.                 break;
  83.             case 3:
  84.                 resultString += ' three';
  85.                 break;
  86.             case 4:
  87.                 resultString += ' four';
  88.                 break;
  89.             case 5:
  90.                 resultString += ' five';
  91.                 break;
  92.             case 6:
  93.                 resultString += ' six';
  94.                 break;
  95.             case 7:
  96.                 resultString += ' seven';
  97.                 break;
  98.             case 8:
  99.                 resultString += ' eight';
  100.                 break;
  101.             case 9:
  102.                 resultString += ' nine';
  103.                 break;
  104.             case 10:
  105.                 resultString += ' ten';
  106.                 break;
  107.             case 11:
  108.                 resultString += ' eleven';
  109.                 break;
  110.             case 12:
  111.                 resultString += ' twelve';
  112.                 break;
  113.             case 13:
  114.                 resultString += ' thirteen';
  115.                 break;
  116.             case 14:
  117.                 resultString += ' fourteen';
  118.                 break;
  119.             case 15:
  120.                 resultString += ' fifteen';
  121.                 break;
  122.             case 16:
  123.                 resultString += ' sixteen';
  124.                 break;
  125.             case 17:
  126.                 resultString += ' seventeen';
  127.                 break;
  128.             case 18:
  129.                 resultString += ' eighteen';
  130.                 break;
  131.             case 19:
  132.                 resultString += ' nineteen';
  133.                 break;
  134.         }
  135.     } else {
  136.         const firstDigit = +stringInput[0];
  137.         const secondDigit = +stringInput[1];
  138.  
  139.         switch (firstDigit) {
  140.             case 2:
  141.                 resultString += ' twenty';
  142.                 break;
  143.             case 3:
  144.                 resultString += ' thirty';
  145.                 break;
  146.             case 4:
  147.                 resultString += ' fourty';
  148.                 break;
  149.             case 5:
  150.                 resultString += ' fifty';
  151.                 break;
  152.             case 6:
  153.                 resultString += ' sixty';
  154.                 break;
  155.             case 7:
  156.                 resultString += ' seventy';
  157.                 break;
  158.             case 8:
  159.                 resultString += ' eighty';
  160.                 break;
  161.             case 9:
  162.                 resultString += ' ninety';
  163.                 break;
  164.         }
  165.  
  166.         if (secondDigit === 0) {
  167.             stringInput = '';
  168.         } else {
  169.             stringInput = '' + secondDigit;
  170.         }
  171.     }
  172. }
  173. if (stringInput.length === 1) {
  174.     const number = +stringInput;
  175.     switch (number) {
  176.         case 0:
  177.             resultString += ' zero';
  178.             break;
  179.         case 1:
  180.             resultString += ' one';
  181.             break;
  182.         case 2:
  183.             resultString += ' two';
  184.             break;
  185.         case 3:
  186.             resultString += ' three';
  187.             break;
  188.         case 4:
  189.             resultString += ' four';
  190.             break;
  191.         case 5:
  192.             resultString += ' five';
  193.             break;
  194.         case 6:
  195.             resultString += ' six';
  196.             break;
  197.         case 7:
  198.             resultString += ' seven';
  199.             break;
  200.         case 8:
  201.             resultString += ' eight';
  202.             break;
  203.         case 9:
  204.             resultString += ' nine';
  205.             break;
  206.     }
  207. }
  208.  
  209. resultString = resultString.trim();
  210. const firstLetter = resultString.charAt(0).toUpperCase();
  211. resultString = firstLetter + resultString.substring(1);
  212.  
  213. console.log(resultString);
  214.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement