數字序列中某一位的數字

2021-09-24 20:16:17 字數 843 閱讀 1540

"""

012345678910...序列中,第n位數

"""def

solution

(n):

if n <0:

return-1

if n <10:

return n

i =2# 確定是第幾位數

sums =

10 ret =

0while

true

:# 一位數 0~9 共10個字元

# 兩位數 10~99 共180個字元

# 三位數 100~999 共2700個字元

sums +=((

10** i)-10

**(i -1)

)* i

if sums > n:

tmp = n -

(sums -((

10** i)-10

**(i -1)

)* i)

numbers =(10

**(i -1)

)+ tmp // i # 得到第n位是第幾個數字

flag = tmp % i # 確定第n位在當前數字中的位置

while i - flag -

1>0:

numbers //=

10 flag +=

1 ret = numbers %

10return ret

else

: i +=

1print

(solution(

1001

))

數字序列中某一位的數字

面試題44 數字序列中某一位的數字 題目 數字以0123456789101112131415 的格式序列化到乙個字串行中。在這 個序列中,第5位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫一 個函式求任意位對應的數字。static int digit at uint32 t inde...

數字序列中某一位的數字

數字以0123456789101112131415 的格式序列化到乙個字串行中,在這個序列中。第五位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。暴力解法,從0開始計數,數到第n位。以1001位為例子。因為序列前10位是0 9這10個只有1位的數字。序...

數字序列中某一位的數字

面試題44 數字以0123456789101112131415 的格式序列化到乙個字串行中。在這個序列中,第5位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。比如查詢序列的第1001位是什麼數字?1.序列的前10位是0 9這10個數字,沒有查過要查詢的...