在無限的整數序列 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的一部分。
思路: 詳見該博主
int
findnthdigit
(int n)
long cur_len =0;
long i =1;
// 位數
long tmp =0;
for(i =
1; cur_len < n; i++
) i--
; cur_len -
= tmp;
long front =
pow(
10, i -1)
-1;long num = front +
(n - cur_len)
/i;long more =
(n - cur_len)
%i;if(0
== more)
return
(int)(
(num +1)
/(pow(
10, i - more)))
%10;}
Leetcode 400 第N個數字 C
在無限的整數序列 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,...
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 的一部分。思路 假設數字位數為...