题解 | #求解立方根#

求解立方根

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,确保能正确进一位

全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务