問題描述:
有乙個無限長的數字序列1,2,2,3,3,3,4,4,4,4,5,5,5,5,5。。。(數字序列從1開始遞增,且數字k在該序列中正好出現k次),求第n項是多少輸入描述:
輸入為乙個整數n輸出描述:
輸出乙個整數,即第n項的值示例輸入:
4
示例輸出:
3
思路:
一開始是打算用加法模擬一下,後來發現超記憶體了。ac**:沒辦法開始用等差數列求和公式,因為1+2+3.。。符合等差數列。
然後運用一元二次方程逆向的解出來n值即可。
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位的數字。序...