n = float(input())
def bsearch(l, r):
while r - l > 1e-8:
mid = (l + r) >> 1
if mid ** 3 < n:
l = mid
else:
r = mid
return l
l = bsearch(-10000, 10000)
print("{:.6f}".format(l))
刚开始写的时候没有想到二分法。python的math库自带的pow算出来的不精确。
后来看了别人的题解才想到高中数学的一个求精确值的方法,就是不断循环比较。