面試題 數字序列中某一位的數字

2021-08-15 07:02:43 字數 729 閱讀 9882

數字以0123456789101112131415····的格式序列化到乙個字串行中。在這個序列中,第5位(從0開始計數)是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。

思路:利用進製縮小範圍。

int digitatindex(int index)

if(index<0)

return -1;

int digts=1;

while(true)

return -1;

int countofintegers(int digits)

if(digits==1)

return 10;

int count=(int)std::pow(10,digits-1);

return 9*count;

int digitatindex(int index,int digits)

int number=beginnumber(digits)+index/digits;

int indexfromright=digits-index%digits;

for(int i;i

number/=0;

return number%10;

int beginnumber(int digits)

if(digits==1)

return 0;

return (int)std::pow(10,digits-1);

面試題44 數字序列中某一位的數字

題目 數字以0123456789101112131415 的格式序列化到乙個字串行中。在這個序列中,第5位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫乙個函式求任意位對應的數字。code include include include include include include ...

數字序列中某一位的數字

面試題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...