题解 | #求解立方根#

求解立方根

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)
全部评论

相关推荐

程序员小白条:要写技术栈上去,项目这东西再写的怎么牛,没具象化的竞赛,奖项,开源做支撑,在面试官看来一眼假
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务