|
| 1 | +const sayNumberInEnglish = (n) => { |
| 2 | + const SINGLE_ARRAY = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] |
| 3 | + const TEEN_ARRAY = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"] |
| 4 | + const DOUBLE_ARRAY = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"] |
| 5 | + |
| 6 | + //For Single Digit |
| 7 | + if(n.toString().length === 1){ |
| 8 | + return SINGLE_ARRAY[n] |
| 9 | + } |
| 10 | + |
| 11 | + //For Double Digits |
| 12 | + if(n.toString().length === 2){ |
| 13 | + if(parseInt(n.toString().charAt(n.length - 2)) === 1){ |
| 14 | + return TEEN_ARRAY[(n%10)] |
| 15 | + } |
| 16 | + |
| 17 | + if(n % 10 === 0){ |
| 18 | + return DOUBLE_ARRAY[(n/10) - 2] |
| 19 | + } |
| 20 | + |
| 21 | + const partOne = DOUBLE_ARRAY[Math.floor((n/10)) - 2] |
| 22 | + const partTwo = SINGLE_ARRAY[n%10] |
| 23 | + |
| 24 | + return partOne + "-" + partTwo |
| 25 | + } |
| 26 | + |
| 27 | + if(n%100 === 0 && parseInt(n.toString().charAt(0)) !== 0){ |
| 28 | + return SINGLE_ARRAY[(n/100)] + " hundred" |
| 29 | + } |
| 30 | + |
| 31 | + const remainingNumber =n - parseInt(${parseInt(n.toString().charAt(0))}00) |
| 32 | + |
| 33 | + if(remainingNumber.toString().length === 1){ |
| 34 | + return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + SINGLE_ARRAY[remainingNumber] |
| 35 | + } |
| 36 | + |
| 37 | + if(parseInt(remainingNumber.toString().charAt(remainingNumber.length - 2)) === 1){ |
| 38 | + return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + TEEN_ARRAY[(remainingNumber%10)] |
| 39 | + } |
| 40 | + |
| 41 | + if(remainingNumber % 10 === 0){ |
| 42 | + return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + DOUBLE_ARRAY[(remainingNumber/10) - 2] |
| 43 | + } |
| 44 | + |
| 45 | + const partOne = DOUBLE_ARRAY[Math.floor((remainingNumber/10)) - 2] |
| 46 | + const partTwo = SINGLE_ARRAY[remainingNumber%10] |
| 47 | + |
| 48 | + return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + partOne + "-" + partTwo |
| 49 | +}; |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +console.log(`5635 in english is: ${sayNumberInEnglish(5635)}`) |
0 commit comments