找出自然数的第 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP