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.

    class Solution:
        def findNthDigit(self, n):
            """
            :type n: int
            :rtype: int
            """
            pos = 0
            while True:
                temp = 9*(10**pos)*(pos + 1)
                if temp>=n:
                    break
                n -= temp
                pos += 1
            a,b = divmod(n,pos+1)
            if b==0:
                a -= 1
                b = pos+1
            return int(str(10**(pos) + a)[b-1])
    

    先找到位于哪个区间(1-9,10-99,100-999...),然后确定是这个区间的那一个数,然后确定是哪一位的数字。
    话说写的有点麻烦,有点嫌弃自己这个代码。。

  • 相关阅读:
    实际项目管理-1
    arcengine 错误
    一些视频技术类网站
    winform 组件之dotnetbar10.5.3
    winform 弹框的组件
    一个好的开源网站
    写webservice 注意点
    ww
    js
    瀑布流
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9741237.html
Copyright © 2011-2022 走看看