Nth Digit LeetCode solution in C++

1
class Solution {
2
public:
3
#define ll long long
4
int findNthDigit(int n) {
5
if (n <= 9) return n;
6
ll i = 1;
7
ll sum = 0;
8
while (true) {
9
ll a = (9 * pow(10, i - 1)) * i;
10
if (n - a < 0) {
11
break;
12
} else {
13
sum += 9 * pow(10, i - 1);
14
n -= a;
15
}
16
i++;
17
}
18

19
ll x = 0;
20
ll mod = n % i;
21
n = (n / i);
22
n += sum;
23
if (mod == 0)
24
return n % 10;
25
else {
26
n++;
27
ll x = i - mod;
28
while (x--) {
29
n /= 10;
30
}
31
}
32
return n % 10;
33
}
34
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0