题解 | #求解立方根#

求解立方根

https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca

import sys

def cube_root(x, epsilon=0.001, max_iterations=100):
    if x == 0:
        return 0

    guess = x / 3  # 初始猜测值为 x/3
    
    for _ in range(max_iterations):
        next_guess = (2 * guess + x / (guess * guess)) / 3  # 二次迭代法公式
        if abs(next_guess - guess) < epsilon:
            return round(next_guess,1)
        guess = next_guess

    return round(guess,1)


for line in sys.stdin:
    a = line.rstrip()
    print(cube_root(float(a)))

有待研究,下面两种时间效率不够。

def cube_root(x, epsilon=0.0001):if x == 0:return 0

import sys


def cube_root(x, epsilon=0.01):
    if x == 0:
        return 0

    low = 0
    high = max(1, x)
    guess = (low + high) / 2

    while abs(guess ** 3 - x) > epsilon:
        if guess ** 3 < x:
            low = guess
        else:
            high = guess
        guess = (low + high) / 2

    return round(guess,1)


for line in sys.stdin:
    a = line.rstrip()
    print(cube_root(float(a)))
############################

import sys


def cube_root(x, epsilon=0.01):
    low = 0
    high = x
    guess = (low + high) / 2

    while abs(guess ** 3 - x) > epsilon:
        if guess ** 3 < x:
            low = guess
        else:
            high = guess
        guess = (low + high) / 2

    return round(guess,1)


for line in sys.stdin:
    a = line.rstrip()
    print(cube_root(float(a)))

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:10
直接上图
牛客13578115...:改得一般,不值80
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
07-11 10:56
门头沟学院 Java
码客明:大胆的说自己能实习6个月就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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