在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。
注意:
n 是正数且在32位整数范围内 ( n < 2)。
示例 1:
输入:3输出:3
示例 2:
输入:11输出:0说明:第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0,它是10的一部分。
class Solution {
public:
    int findNthDigit(int n) {
        long maxBorder = 9;
        long ten = 9;
        int level = 1;
        int num = 9;
        if(n<10){
            return n;
        }
        while(maxBorder < n){
            level++;
            ten = ten * 10;
            num += ten;
            maxBorder += ten * level;            
        }
        int index = ((n - maxBorder + ten* level) + 1) / level + (num - ten);
        int bit_index = (n - maxBorder + ten* level - 1 + level) % level;
        for(int i = 0; i< level - bit_index - 1;i++){
            index = index/10;
        }
        cout<<index<<endl;
        return index % 10;
    }
};
                    