public:
//比较详细了
    /*
    1-9       9个*1
    10-99     90个*2
    100-999   900个*3
    1000-9999 9000个*4
    */
    int findNthDigit(int n) {
        // write code here
        if(n==0)return 0;
        long long start=1;//起始数
        long long digit=1;//记录位数
        long long count=9;//记录区间个数,比如9 90 900
        while(n>count){//先减去前面有规律的数
            digit++;
            n-=count;
            start*=10;
            count=digit*9*start;
        }
        //以下就是n剩余的数
        //这里我们先判断剩余的n是在哪个数
        long long number=start+(n-1)/digit;//start就是开始的第一个数字,所以后面要n-1
        //判断好是在哪个数字后,下面对数字分解
        long long temp=(n-1)%digit+1;//这个数的第几位
        for(int i=digit;i>temp;i--){//把这个数后面多余的尾巴去掉
            number/=10;
            cout<<number<<" ";
        }
        return number%10;
    }
};