數字序列中某一位的數字

2021-10-02 16:56:56 字數 711 閱讀 3965

數字以0123456789101112131415…的格式序列化到乙個字串行中,在這個序列中。第五位(從0開始計數)是5,第13位是1,第19位是4,等等。

請寫乙個函式,求任意第n位對應的數字。

暴力解法,從0開始計數,數到第n位。

以1001位為例子。

因為序列前10位是0-9這10個只有1位的數字。

序列的前180(2 * 90) 位是10-99這90個有2位的數字。

序列的前2700(3 * 900) 位是100-999這 900個有3位的數字。

因為10 + 180 < 1001 < 10 + 180 + 2700

可以判斷第1001位是三位數。

(1001 – 10 – 180 ) / 3 = 270 餘 1

可知是第270個三位數字的第2位 即7

public static int digitatindex(int index)

}public static int countofintegers(int digits)

public static int digitatindex(int index,int digits)

return number % 10;

}public static int beginnumber(int digits)

本題根據題意分析需要得到位數,剩餘數字,不同位數的數字個數總和等變數。

數字序列中某一位的數字

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

數字序列中某一位的數字

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...

數字序列中某一位的數字

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