Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자연수의 n 번째 자리 찾기 JavaScript

<시간/>

수학에서 자연수는 1에서 시작하여 무한히 확장되는 숫자라는 것을 알고 있습니다.

처음 15개의 자연수는 -

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

따라서 첫 번째 자연수는 1, 두 번째는 2, 세 번째는 3 등입니다. 그러나 9를 초과하면 10번째 자연 숫자가 10의 첫 번째 숫자, 즉 1이고 11번째 자연 숫자가 다음 숫자인 0입니다.

n과 같은 숫자를 입력받아 n번째 자연 숫자를 찾아 반환하는 JavaScript 함수를 작성해야 합니다.

예시

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