009快手 數字序列第n位的值

2021-09-27 12:07:50 字數 1028 閱讀 7972

問題描述:

有乙個無限長的數字序列1,2,2,3,3,3,4,4,4,4,5,5,5,5,5。。。(數字序列從1開始遞增,且數字k在該序列中正好出現k次),求第n項是多少

輸入描述:

輸入為乙個整數n

輸出描述:

輸出乙個整數,即第n項的值

示例輸入:

4
示例輸出:

3
思路:

一開始是打算用加法模擬一下,後來發現超記憶體了。

沒辦法開始用等差數列求和公式,因為1+2+3.。。符合等差數列。

然後運用一元二次方程逆向的解出來n值即可。

ac**:

def

solution1()

: n =

int(

input()

) res =(-

1+(1

+8*n)**

0.5)/2

if res -

int(res)

>0:

print

(int

(res)+1

)else

:print

(int

(res)

)solution1(

)

附80%的**:

def

solution()

: n =

int(

input()

) curs =

1 offset =

1while curs < n:

offset +=

1 curs += offset

print

(offset)

數字序列中某一位的數字

面試題44 數字序列中某一位的數字 題目 數字以0123456789101112131415 的格式序列化到乙個字串行中。在這 個序列中,第5位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫一 個函式求任意位對應的數字。static int digit at uint32 t inde...

數字序列中某一位的數字

012345678910.序列中,第n位數 def solution n if n 0 return 1 if n 10 return n i 2 確定是第幾位數 sums 10 ret 0while true 一位數 0 9 共10個字元 兩位數 10 99 共180個字元 三位數 100 999...

數字序列中某一位的數字

數字以0123456789101112131415 的格式序列化到乙個字串行中,在這個序列中。第五位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。暴力解法,從0開始計數,數到第n位。以1001位為例子。因為序列前10位是0 9這10個只有1位的數字。序...