找出自然數的第 n 位數字 JavaScript


眾所周知,數學中的自然數從 1 開始,無窮無盡。

前 15 個自然數為:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

因此,第一個自然數位為 1,第二個為 2,第三個為 3,依此類推。但是當我們超過 9 時,第十個自然數位是 10 的第一個數字,即 1,而第 11 個自然數位是下一個,即 0。

我們需要編寫一個 JavaScript 函式,該函式接受一個數字(例如 n)並查詢和返回第 n 個自然數位。

示例

const findNthDigit = (num = 1) => {
   let start = 1;
   let len = 1;
   let count = 9;
   while(num > len * count) {
      num -= len * count;
      len++; count *= 10;
      start *= 10;
   };
   start += Math.floor((num-1)/len);
   let s = String(start);
   return Number(s[(num-1) % len]);
};
console.log(findNthDigit(5));
console.log(findNthDigit(15));
console.log(findNthDigit(11));
console.log(findNthDigit(67));

輸出

控制檯中的輸出為:

5
2
0
8

更新時間:23-11-2020

302 次瀏覽

開啟你的 <span class="text-yellow-400">職業生涯</span>

完成課程獲取認證

開始學習
廣告