class Solution {
public:
int findNthDigit(int n) {
if(n < 10) return n;
uint64_t cnt = 10;
uint64_t base = 90, len = 2;
while(cnt + len * base <= n) {
cnt += len * base;
len++;
base *= 10;
}
int num = base / 9;
while(cnt + len <= n) cnt += len, num++;
cnt += len - 1;
for(cnt -= n; cnt > 0; cnt--) num /= 10;
return num % 10;
return cnt;
}
};
【leetcode 数学问题 C++】【剑指 Offer】 44. 数字序列中某一位的数字
最新推荐文章于 2021-10-10 10:40:59 发布