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.
public int findNthDigit(int n) {
long i = 9;
int count = 1;
int pre = 1;
while (n >i*(count)) {
n-=i*(count++);
i *= 10;
pre *= 10;
}
int num = (n-1) /count+pre;
char c = String.valueOf(num).charAt((n-1)%count);
return Character.getNumericValue(c);
}