Guest User

Untitled

a guest
Jun 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. let words = {
  2. 0: "",
  3. 1: "one",
  4. 2: "two",
  5. 3: "three",
  6. 4: "four",
  7. 5: "five",
  8. 6: "six",
  9. 7: "seven",
  10. 8: "eight",
  11. 9: "nine",
  12. 10: "ten",
  13. 11: "eleven",
  14. 12: "twelve",
  15. 13: "thirteen",
  16. 14: "fourteen",
  17. 15: "fifteen",
  18. 16: "sixteen",
  19. 17: "seventeen",
  20. 18: "eighteen",
  21. 19: "nineteen",
  22. 20: "twenty",
  23. 30: "thirty",
  24. 40: "forty",
  25. 50: "fifty",
  26. 60: "sixty",
  27. 70: "seventy",
  28. 80: "eighty",
  29. 90: "ninety"
  30. }
  31.  
  32. for (let i = 1; i < 10; i++) {
  33. words[i * 100] = words[i] + " hundred";
  34. }
  35.  
  36. // 1 -> "one" -> 3
  37. // 10 -> "ten" -> 3
  38. // 19 -> "nineteen" -> 8
  39. // 367 -> "three hundred and sixty seven" -> 5 + 7 + 3 + 5 + 5
  40.  
  41. // For the numbers 1 - 1000
  42. // sum the total number of characters, excluding spaces
  43. // For numbers > 99 not divisible by 100, an "and" should separate the hundreds from the tens/ones.
  44.  
  45. function getHundreds(num) {
  46. if(num < 100) return '';
  47. return words[Math.floor(num / 100)] + 'hundred';
  48. };
  49.  
  50. function getTens(num) {
  51. let restTens = num % 100;
  52. // number is one of 100, 200, 300..
  53. if (restTens === 0) return '';
  54.  
  55. if(restTens > 20) {
  56. let firstPart = words[Math.floor(restTens / 10) * 10];
  57. let secondPart = words[restTens % 10];
  58. return firstPart + secondPart;
  59. }
  60. // under 20 does not require assembly
  61. return words[restTens];
  62. }
  63.  
  64. function getStringLength(num) {
  65. if(num === 1000) return 'onethousand'.length
  66.  
  67. let hundreds = getHundreds(num);
  68. let tens = getTens(num);
  69.  
  70. if(hundreds && tens) {
  71. console.log(hundreds + "and" + tens);
  72. return hundreds.length + "and".length + tens.length;
  73. };
  74. if(hundreds) {
  75. console.log(hundreds + tens)
  76. return tens.length + hundreds.length
  77. };
  78. console.log(tens);
  79. return tens.length;
  80. }
  81.  
  82. let sum = 0;
  83. for (let n = 1; n < 1000; n++) {
  84. sum += getStringLength(n);
  85. }
  86. console.log('succes:',sum + 11 === 21124);
Add Comment
Please, Sign In to add comment