题解 | #求解立方根#
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
题解好卷,竟然用牛顿法。 尝试了简单的二分
n = float(input())
if n == 0: print(0.0)
else:
n, sig = abs(n), 1 if n > 0 else -1
l, r = 0, n
m = (l + r) / 2
while abs(m ** 3 - n) > 0.001:
if m ** 3 > n:
r = m
else:
l = m
m = (l + r) / 2
print(round(sig * m, 1))
用例0.3超时,再看了一眼题解的优化,初始化的时候把0,n改成1,n竟然能过。
l, r = min(1,n), max(1,n)
查看13道真题和解析