题解 | #数字序列中某一位的数字#

数字序列中某一位的数字

http://www.nowcoder.com/practice/29311ff7404d44e0b07077f4201418f5

常规想法定义数字的相关的位数,进行对应的数位操作

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def findNthDigit(self , n: int) -> int:
        # write code here
        # 找这种数字出现的规律
        # 记录n 在第几个位数上面
        # n是几位数
        d = 1
        # 区间的开始的数字
        s = 1
        # 记录当前区间有多少位数字
        sum_m = 9
        while n>sum_m:
            n = n-sum_m
            s = s*10
            d = d+1
            sum_m = 9*s*d
        # 定位n在哪一个数字上,需要注意下标减去1
        num = s + (n-1)//d
        # 定义n在数字的哪一位上面
        index = (n-1)%d # 多位数的第几位
        return int(str(num)[index])

注意编程思路的实现

全部评论

相关推荐

05-23 19:33
重庆大学 Java
只学了传统后端,马上去后端实习了,在想要不要学习agent开发相关的。27秋招和26相比难度如何?
我连备胎都不是却还在...:就暑期实习而言,大厂官宣hc 比 26 多,但是我观察看应该低于 26 的,估计秋招也不简单
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务