Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm chữ số thứ n của số tự nhiên JavaScript

Chúng ta biết rằng số tự nhiên trong Toán học là những số bắt đầu từ 1 và kéo dài vô tận.

15 số tự nhiên đầu tiên là -

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

Do đó, chữ số tự nhiên đầu tiên là 1, thứ hai là 2, thứ ba là 3, v.v. Nhưng khi chúng ta vượt quá 9, thì chữ số tự nhiên thứ mười là chữ số đầu tiên của 10, tức là 1 và chữ số tự nhiên thứ 11 là chữ số tiếp theo, tức là 0.

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một số, chẳng hạn như n, rồi tìm và trả về chữ số tự nhiên thứ n.

Ví dụ

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

5
2
0
8