题解 | #求解立方根#
求解立方根
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,确保能正确进一位