Leetcode 400 第N個數字 C

2021-10-07 18:41:59 字數 799 閱讀 2901

在無限的整數序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 個數字。

注意:n 是正數且在32位整數範圍內 ( n < 231)。

示例 1:

輸入:

3輸出:

3

示例 2:
輸入:

11輸出:

0說明:

第11個數字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 裡是0,它是10的一部分。

1~9,9個數,是91位數;10 ~ 99,90個數,是902位數;100 ~ 999,900個數,是900*3位數·······

對於第n位數,我們令這個數字對應的數是target,分三步

確定找到的數是幾位數,

確定對應的數target是什麼

確定返回值是target中的哪個數字

詳細過程見**

int

findnthdigit

(int n)

int idx = n % digit;

if(idx ==

0) idx = digit;

int num = base/

9+ n/digit;

//確定target

if(idx == digit) num--

; idx = digit-idx+1;

while

(--idx)

return num%10;

}

LeetCode400 第N個數字

在無限的整數序列 1,2,3,4,5,6,7,8,9,10,11,中找到第 n 個數字。注意 n 是正數且在32為整形範圍內 n 231 示例 1 輸入 3 輸出 3 示例 2 輸入 11 輸出 0 說明 第11個數字在序列 1,2,3,4,5,6,7,8,9,10,11,裡是0,它是10的一部分。...

leetcode 400 第N個數字(數學)

位數 個數 1 92 90x2 3 900x3 先定他是幾位數。如果他是3位數,減去一位數的個數總和,減去一位數的個數總和,代表的就是從100開始他是第幾個數了,除以3,則可以判斷他是在從100開始的第幾個數裡面,再利用取餘,就可以判斷出他是這個數裡面的第幾個了。int main 定位數。int c...

LeetCode 400 第N位數字

給你乙個整數n,請你在無限的整數序列 1,2,3,4,5,6,7,8,9,10,11,中找出並返回第n位數字。示例 1 輸入 n 3輸出 3示例 2 輸入 n 11輸出 0解釋 第 11 位數字在序列 1,2,3,4,5,6,7,8,9,10,11,裡是0,它是 10 的一部分。思路 假設數字位數為...