(唯品会二面的时候遇到的一个问题因为之前接触的都是可以开出整数的运算,所以就卡壳了。)
二分法:
float SqrtByBisection(float n)
{
float low,up,mid,last;
low=0,up=(n<1?1:n);
mid=(low+up)/2;
do
{
if(mid*mid>n)
up=mid;
else
low=mid;
last=mid;
mid=(up+low)/2;
}while(fabsf(mid-last) > eps);
return mid;
}
网友评论