标签:with ati log not eric signed code nbsp while
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.
/** * 1 - 9 : 9 * 10 - 99 : 90 * 100-999 : 900 * ... */ public class Solution { public int findNthDigit(int n) { long count = 9; // 因为要 9 * 1000000000 注意会超出最大整数 !!!! int len = 1; int start = 1; while(n > count * len){ n -= count * len; count *= 10; len += 1; start *= 10; } start += (n -1) / len; String c = Integer.toString(start); return Character.getNumericValue(c.charAt((n-1) % len)); } }
标签:with ati log not eric signed code nbsp while
原文地址:http://www.cnblogs.com/joannacode/p/6130567.html