數字以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...