1256. 第n个数位
找出无限正整数数列1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中的第n个数位。
样例
样例 1:
输入:3
输出:3
样例 2:
输入:11
输出:0
解析:数字序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 第11位是0
注意事项
-
n是一个正整数,并且不会超出32位有符号整数的范围(n < 2^31)。
public class Solution {
/**
* @param n: a positive integer
* @return: the nth digit of the infinite integer sequence
*/
public int findNthDigit(int n) {
// write your code here
long start = 1, count = 1, ret = 9;
while (n > count * ret) {
n -= count * ret;
ret = ret * 10;
start = start * 10;
count++;
}
start += (n - 1) / count;
String result = String.valueOf(start);
long index = (n-1)%count;
return result.charAt((int)index)-'0';
}
}