对整数开平方返回小数

2018-04-15  本文已影响17人  analanxingde

(唯品会二面的时候遇到的一个问题因为之前接触的都是可以开出整数的运算,所以就卡壳了。)
二分法:

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; 
}
上一篇 下一篇

猜你喜欢

热点阅读