float number square root

public float sqrt(float f, int p), precision是表示小数点后位数(2就要两位一致)
p is the number of digits after the decimal point has to be right

Solution:
判断数据是否符合精确度,就用两个数都乘以10^p,再取整比较是否相等。比如p=2, f=0.64, curRes = 0.639就不行因为都乘以100以后取整是64, 和63不相等。 如果curRes = 0.645就没问题。

至于curRes,我就先二分法取到整数范围,比如8开平方根在(2,3)范围,再再(2,3)范围内二分,判断精确度。要注意的是,(2,3)大于1和(0,1)小于一两种范围二分的时候方向不同。大于一越平方越大,小于一越平方越小!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值