-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathnth-digit.js
More file actions
46 lines (44 loc) · 839 Bytes
/
nth-digit.js
File metadata and controls
46 lines (44 loc) · 839 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...
//
// Note:
// n is positive and will fit within the range of a 32-bit signed integer (n < 231).
//
//
// Example 1:
//
// Input:
// 3
//
// Output:
// 3
//
//
//
// Example 2:
//
// Input:
// 11
//
// Output:
// 0
//
// Explanation:
// The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.
/**
* @param {number} n
* @return {number}
*/
var findNthDigit = function(n) {
var len = 1;
var count = 9;
var start = 1;
while (n > len * count) {
n -= len * count;
len++;
count *= 10;
start *= 10;
}
start += parseInt((n - 1) / len);
var s = start.toString();
return +s.charAt((n - 1) % len);
};