Skip to content

Commit aa48a1b

Browse files
authored
Create nth-digit.cpp
1 parent 888449e commit aa48a1b

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

C++/nth-digit.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Time: O(logn)
2+
// Space: O(1)
3+
4+
class Solution {
5+
public:
6+
int findNthDigit(int n) {
7+
int digit_len = 1;
8+
while (n > digit_len * 9 * pow(10, digit_len - 1)) {
9+
n -= digit_len * 9 * pow(10, digit_len - 1);
10+
++digit_len;
11+
}
12+
13+
const int num = pow(10, digit_len - 1) + (n - 1) / digit_len;
14+
15+
int nth_digit = num / pow(10, (digit_len - 1) - (n - 1) % digit_len);
16+
nth_digit %= 10;
17+
18+
return nth_digit;
19+
}
20+
};

0 commit comments

Comments
 (0)