"""
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個數字,沒有查過要查詢的...