數字序列中某一位的數字

2022-07-17 06:57:10 字數 1184 閱讀 6009

題目:

數字以0123456789101112...格式序列化到乙個字串行中。在這個序列中,第5位(從0開始)是5,第13位是1。

解答:比如找1001位數字

1、1位數有10個,0-9,數字為10x1=10個,顯然1001>10,跳過這10個數值,在後找第991為位數字(1001-10)

2、2位數有90個:10-99,數字為90x2=180個,顯然991>180,繼續在後面找881為數字(991-180)

3、3位數有900個:100-999,數字為900x3=2700個,且881<2700,說明第811為數字在位數為3的數值中。

由於811=270x3+1,所以第811位是從100開始的第270個數值的第二個數字,就是7

解答:

1

public

class

solution 78

public

static

int digitatindex(int

index)

1213

int digits = 1;

1415

while(true

) else26}

27}2829

30private

static

intcountofnumberfor(digits)

3435

int count = (int)math.pow(10, digits-1);

36return 9*count;37}

3839

private

static

int digitatindex(int index, int

digits)

5354

//37 % 10 = 7

5556

return number%10;57}

5859

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

數字序列中某一位的數字

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