publicclassNthDigit{ publicintfindNthDigit(int n){ /** * Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... * Note: * n is positive and will fit within the range of a 32-bit signed integer (n < 231). * Example 1: * Input: * 3 * Output: * 3 * Example 2: * * Input: * 11 * * Output: * 0 * * Explanation: * The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10. * * width count * 1-9: 1 9 * 10-99: 2 90 * 100-999: 3 900 * * w, c = 1, 9 // width and count of numbers (of each level) * while n > w*c: * n -= w*c * w += 1 * c *= 10 * num, d = (c/9) + (n-1)/w, (n-1)%w // c/9 is equals to 10**w, means the base number * return int(str(num)[d]) */ if (n < 10) { return n; } elseif (n < 100) { if (n % 2 == 0) { return n; } } return n; } }