题目
思路
先找到第n位数字对应的数字长度,再找到具体数字,和它在数字里面的序号。n--非常重要,目的是让n从0开始,千万不能忘记了!另外要注意的是len*count可能会超过int型范围,所以要类型转换成long型。
代码
class Solution {
public:
int findNthDigit(int n) {
int count=9,len=1;
while(n>(long)len*count){
n-=len++*count;
count*=10;
}
n--; //让n从0开始
int start=pow(10,len-1);
int x=n/len+start;
int index=n%len;
return x/(int)pow(10,len-1-index)%10;
}
};