class Solution { public: int findNthDigit(int n) { int digit = 1; //位数 long start = 1; //位数起始值 long count = 9; while (n > count) { // 1.确定所求数位的所在数字的位数 n -= count; digit += 1; // 1, 10, 100, ... start *= 10; // 1, 2, 3, ... count = digit * start * 9; } long num = start + (n - 1) / digit; // 2.确定所求数位所在的数字 return to_string(num)[(n - 1) % digit] - '0'; // 3.确定所求数位在num的哪一数位 } };