主要思路就三步:
具體思路理解:見這篇題解
class
solution
int digit =1;
//數字位數(例如三位數digit=3)
long start =1;
//digit位數的第乙個數字(0是特殊數字)
long count =10;
//所有digit位數所佔的 數字數量
while
(n>count)
//2. 確定n所在的數字num
//此時n的值是相對於start的位置
long num = start + n/digit;
//3. 確定n是num的第幾位
//這裡引入s和c方便理解
string s = long.
tostring
(num)
;char c = s.
charat
(n%digit)
;return c -
'0';
}}
劍指offer 44 數字序列中某一位的數字
這種數學題好難 參考 1 理解題意 以第15位數字2為例 2隸屬與12,兩位數,位於12從左側以0號開始下標為1的位置 步驟1 首先確定該數字是屬於幾位數的 如果是一位數,n 9 如果是兩位數,n 9 90 2 189 說明是兩位數。步驟2 確定該數字屬於哪個數。10 15 10 2 12。步驟3 ...
劍指offer44 數字序列中某一位的數字
題目描述 在無限的整數序列 1,2,3,4,5,6,7,8,9,10,11,中找到第 n 個數字。數字以0123456789101112131415 的格式序列化到乙個字串行中。在這個序列中,第5位 從0開始計數,即從第0位開始 是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應...
劍指offer44 數字序列中某一位的數字
思路 求該數字所在的資料範圍,即屬於幾位數 求該數字的具體數值,是多少 找出所求是數字中的第幾位,求出數字中對應的那一位 param n return var findnthdigit function n let digit 1,count 10,numcount 10 求出是digit位數 wh...