两种解法解决求取立方根的问题:二分法、牛顿迭代法

这道题实际上是我在实际面试过程中被考到的一道题,个人觉得比较值得记录一下。

题目要求:计算给定数字的立方根,并且保留小数点后两位。

解法一 :二分法

求立方根的问题实际上就是在1~给定数字之间找到一个数,让这个数的立方为给定数字,由此转化为了一个查找问题。

话不多说,二分查找还是很容易理解滴,只需要注意如何保留小数点后2位就可以了,上代码

def getCube1(input):
    lo = 1
    hi = input
    mid = lo
    while hi - lo > 0.0001:
        mid = (hi + lo) / 2
        cube = mid * mid * mid
        if cube > input:
            hi = mid
        elif cube < input:
            lo = mid
        else:
            return mid
    return float(("%.3f") % mid)

解法二:牛顿迭代法

非常有逼格有品位的方法,该方法源于数值分析,是展现你高超的编程与算法能力的解决方案。

首先了解什么是牛顿迭代法

比如我们求一个函数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值