劍指 Offer 44 數字序列中某一位的數字

2021-10-21 06:40:50 字數 547 閱讀 6278

主要思路就三步:

具體思路理解:見這篇題解

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