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...),然后确定是这个区间的那一个数,然后确定是哪一位的数字。
    话说写的有点麻烦,有点嫌弃自己这个代码。。

  • 相关阅读:
    synchronized关键字的用法
    for循环删除集合陷阱
    Java之可变参数
    下拉菜单中的Option对象
    JavaScript数组
    线程
    尝试用代码写博客
    环境配置大全
    3中边缘检测算子
    caffe新手入门
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9741237.html
Copyright © 2011-2022 走看看