LeetCode 400 第N位數字

2022-09-04 22:33:22 字數 1121 閱讀 6448

給你乙個整數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 的一部分。
思路:

假設數字位數為len,則位數為len的數字範圍是,說明位數為len的所有數字長度為9* 10(len-1),先得到目標位置所屬數字的長度,再得到目標位置所屬數字,繼而得出目標位置在所屬數字的最終位置,就可以得到第n位數字

public static int findnthdigit(int n) 

// 得到位數為len的第乙個起始數字, 1,10,100,1000.etc

int basenumber = (int) math.pow(10, len - 1);

// 目標位置所屬的數字,

// 從起始數字到目標所屬數字範圍內的所有數字長度相等,均為len,從而可以得到目標位置所屬數字

int number = (n - 1) / len + basenumber;

// 得到目標位置在所屬數字的位置

int mod = (n - 1) % len;

// 得到第n位數字

return string.valueof(number).charat(mod) - '0';

}

執行結果
findnthdigit demo01 result : 3

findnthdigit demo02 result : 0

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