計數 JavaScript 中的字母數


我們需要編寫一個 JavaScript 函式,接收一個數字,比如 n。該函式應當計算從 1 到 n 數名的字母數。

例如 - 如果 n = 5;

那麼這些數字是:一、二、三、四、五,字母總數為 19,所以輸出應當為 19。

示例

const sumUpto = (num = 1) => {
   let sum = 0;
   const lenHundred = 7;
   const lenThousand = 8;
   const lenPlaceOnes = [0,3,3,5,4,4,3,5,5,4];
   const lenPlaceTens = [0,3,6,6,5,5,5,7,6,6];
   for (let i = 1; i <= num; i++) {
      let placeOnes = i % 10;
      let placeTens = Math.floor(i / 10) % 10;
      let placeHundreds = Math.floor(i / 100) % 10;
      let placeThousands = Math.floor(i / 1000) % 10;
      sum += lenPlaceOnes[placeOnes];
      sum += lenPlaceTens[placeTens];
      if (placeHundreds != 0) {
         sum += lenHundred + lenPlaceOnes[placeHundreds];
      }
      if (placeThousands != 0) {
         sum += lenThousand + lenPlaceOnes[placeThousands];
      }
      if (placeTens === 1) {
         switch (placeOnes) {
            case 4:
            case 6:
            case 7:
            case 9:
            sum += 1;
            break;
         }
      }
      if (i > 100 && i % 100 != 0) {
         sum += 3;
      }
   }
   return sum;
}
console.log(sumUpto(12));
console.log(sumUpto(5));
console.log(sumUpto(122));

輸出

將產生以下輸出 -

51
19
1280

更新於: 2020 年 11 月 25 日

327 次瀏覽

職業從此開始

完成課程,獲取認證

開始
廣告