数字序列中某一位的数字
blablabla
class Solution {
public int digitAtIndex(int n) {
long s = 9,base = 1; //i表示位数,s表示当前位数中的数目,base表示当前位数的起始值
int i = 1;
while (n > i * s){
n -= i * s;
i++;
s *= 10;
base *= 10;
}
int number =(int)base + (n + i - 1) / i - 1;
int r = n % i > 0 ? n % i : i; // 除不尽就是第几位,除尽了就是最后一位。
for (int j = 0; j < i - r; j++) {
number /= 10;
}
return number % 10;
}
}