查找自然数的第 n 位数字 JavaScript
javascriptweb developmentfront end technologyobject oriented programming
我们知道,数学中的自然数是从 1 开始并无限延伸的数字。
前 15 个自然数为 −
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
因此,第一个自然数是 1,第二个是 2,第三个是 3,依此类推。但是当超过 9 时,第十个自然数就是 10 的第一位数字,即 1,第十一位自然数就是下一个数字,即 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