Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 849 Bytes

nth-digit.md

File metadata and controls

39 lines (33 loc) · 849 Bytes

Solution

    class Solution {
    public:
        int findNthDigit(int n) {
            if(n < 10)
                return n;
            int dig = 1;
            int num = 1;
            int count = 9;
            while((long)dig * (long)count <= (long)n) {
                n -= dig * count;
                dig++;
                count *= 10;
                num *= 10;
            }
            if(n == 0)
                return 9;
            while(dig <= n) {
                n -= dig;
                num++;
            }
            if(n == 0)
                return (num - 1) % 10;
            for(int i = 0; i < dig - n; i++) 
                num /= 10;
            return num % 10;
        }
    };