劍指 offer 44. 數字序列中某一位的數字
數字以0123456789101112131415…的格式序列化到乙個字串行中。在這個序列中,第5位(從下標0開始計數)是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。
示例 1:
輸入:n = 3
輸出:3
示例 2:
輸入:n = 11
輸出:0
限制:0 <= n < 2^31
import "strconv"
func findnthdigit(n int) int
//確定是當前數字下的第幾個數, 由於每個int數可拆為digit個1位數
//所以 n / k 取整表示是從當前start開始的第幾個數
start += (n + digit - 1)/digit - 1
//確定是當前這個int數的第幾個數字, 當前每個int數的digit是確定的,只要對%digit進行取餘,就知道其位於第幾個位置
if n % digit == 0 else
ans := int((strconv.itoa(start))[n-1] - '0')
return ans
}
劍指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...