题解 | #数字序列中某一位的数字#
数字序列中某一位的数字
https://www.nowcoder.com/practice/29311ff7404d44e0b07077f4201418f5
#include <string>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
int findNthDigit(int n) {
//记录n进入的是几位数的区间
int dight=1;
//记录区间的起始数字
long long start=1;
//记录区间一共有多少位数字
long long sum=9;
//将n定位在某个数的区间中
while(n>sum) {
n-=sum;
start*=10;
dight++;
//该区间的总位数
sum=9*start*dight;
}
//定位在哪一位数字上
string num=to_string(start+(n-1)/dight);
//定位在数字哪一位上
int index = (n-1)%dight;
return (int)(num[index]-'0');
}
};


