题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
f = float(input())
zs = -1 if f < 0 else 1
f = abs(f)
i = 0
while (i+1)**3<f:
i += 1
while (i+0.05)**3<f:
i+= 0.051
print('%.1f'%(i*zs))
还是遇到一点坑的,首先就是题目的开方是需要四舍五入的,所以在0.1的层面及逆行逼近的时候就需要每0.05进行逼近,还有就是题目需要考虑复数的情况,同时python的float类型本身就是有误差的,在0.05的时候有时候进一位有时候抹一位的,这是要么用更精确的Decimal,要么就像现在这样i+0.051,确保能正确进一位
阿里云工作强度 727人发布