题解 | #求解立方根#
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
这道题使用二分查找的思想其实并不难, 难点在于如何控制终止条件, 否则可能会出错, k为val的小数位数, 我们需要使用round函数对结果进行小数点保留, 进而进行比较
val = float(input())
left, right = -20, 20
item = 0
k = len(str(val).split('.')[-1])
while left < right:
mid = (left+right)/2
res = round(mid**3,k)
if res<val:
left = mid
elif res>val:
right = mid
else:
print("{:.1f}".format(mid))
break