python 3 解法 ,考虑小于1以及负数的情况

求解立方根

http://www.nowcoder.com/questionTerminal/caf35ae421194a1090c22fe223357dca

import sys

def cube():
    num = float(sys.stdin.readline().strip())
    if num == 0:
        return 0
    if num > 0:
        sig = 1
    else:
        sig = -1
    num = abs(num)

    if num > 1:
        start = 0
        end = num
    else:
        start = num
        end = 1
    mid = (end + start) / 2
    while abs(mid ** 3 - num) > 0.001:
        if mid ** 3 > num:
            end = mid
        else:
            start = mid
        mid = (end + start) / 2
    print(round(sig * mid, 1))

cube()
全部评论
清晰明了,超赞的
2 回复
分享
发布于 2021-04-01 16:47
我不理解,但我大为震撼
1 回复
分享
发布于 2022-04-25 22:47
联易融
校招火热招聘中
官网直投
num>1,start = 1
4 回复
分享
发布于 2021-05-25 16:48
思想很优秀
点赞 回复
分享
发布于 2021-08-13 01:56
有点小bug,不能解0.不过已经很好了。。
点赞 回复
分享
发布于 2021-09-16 21:37
求解 sys.stdin 怎么结束输入?Ctrl +D 不管用啊
点赞 回复
分享
发布于 2022-03-21 12:00
if num > 1: start = 0 end = num else: start = num end = 1 这个有点不能理解,为什么这么写
点赞 回复
分享
发布于 2023-02-06 12:28 广东
这里我觉得要改一下 if num > 1: start = 1 end = num else: start = num end = 1
点赞 回复
分享
发布于 2023-03-04 12:52 广东

相关推荐

37 11 评论
分享
牛客网
牛客企业服务