题解 | #求平方根#

求平方根

https://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c


简单来说这题就是二分的另一种形式
难点在答案取的范围因为数据可能有1000~-1000
还会有0.001这种,所以二分答案的时候一定要从头到尾,不能想当然的从a开始
当a=0.001时,答案是0.01大于a了所以一直出错
bool check(double s,double ans){
    if(ans>s*s*s){
        return true;
    }
    else {
        return false;
    }
}
int main()
{
    int n,i,j,f=0;
    double a,l,r;
    cin>>a;
    if(a<0) l=0,f=1,a=abs(a);
    l=-1000,r=1000;             //难点在答案取的范围因为数据可能有1000~-1000
    while(l+1e-7<r){            //还会有0.001这种,所以二分答案的时候一定要从头到尾,不能想当然的从a开始
        double mid=(l+r)/2;     //当a=0.001时,答案是0.01大于a了所以一直出错
        if(check(mid,a)){
            l=mid;
        }
        else {
            r=mid;
        }
    }
    if(f==1)     printf("-%.6lf",l);
    else printf("%.6lf",l);
}

全部评论

相关推荐

牛客266927136号:为啥实习经历写这么少,项目经历反而大写特写,最重要的还是实习经历吧,写具体点,什么场景下做了什么事,解决了什么问题,优化了什么场景,性能提升了多少多少
点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务