zoukankan      html  css  js  c++  java
  • 400. Nth Digit

    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.
    
    Hide Company Tags
     
    /**
     * 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));
        }
    }
  • 相关阅读:
    红黑树-插入篇
    并查集
    Rabin-Karp【转载】
    KMP
    怎样花两月时间去应聘互联网公司 [转载]
    c++ 智能指针【转载】
    java序列化
    Web页面导出Excel表格
    基于jquery-UI的日期选择器
    Doc命令
  • 原文地址:https://www.cnblogs.com/joannacode/p/6130567.html
Copyright © 2011-2022 走看看