#include <string>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int findNthDigit(int n) {
        long long len = 1; // 当前位数1 2 3
        long long count = 9;//个数 9 90 900
        long long start = 1; // 起始数字1 10 100
        while(n > len * count)
        {
            n -= len * count;
            len ++;
            count *= 10;
            start *= 10;
        }
        long long num = start + (n - 1) / len; // 找到数字在当前位数内的具体位置
        int numPos = (n - 1) % len;
        string numStr = to_string(num);
        return numStr[numPos] - '0';
    }
};