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

2022-07-10 08:39:11 字數 698 閱讀 2718

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