这道题实际上是我在实际面试过程中被考到的一道题,个人觉得比较值得记录一下。
题目要求:计算给定数字的立方根,并且保留小数点后两位。
解法一 :二分法
求立方根的问题实际上就是在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)
解法二:牛顿迭代法
非常有逼格有品位的方法,该方法源于数值分析,是展现你高超的编程与算法能力的解决方案。
首先了解什么是牛顿迭代法
比如我们求一个函数