算法学习——浮点数二分

浮点数二分不需要考虑太多的边界问题,只需要保证精度满足题目的要求即可,通常在acm中,假如题目精度要求保留n位小数,我们正常设置与标准答案的误差为10的负n+2次方就行。

例题:

 

 c++代码:

#include<bits/stdc++.h>
using namespace std;

int main(){
    double l = -10000,r = 100000;
    double x;
    cin>>x;
    while( r - l > 1e-8 ){
        double mid = (l + r) /2;
        if(mid * mid * mid >= x){
            r = mid;
        }else{
            l = mid;
        }
    }
    cout<<fixed<<setprecision(6)<<l<<endl;
    
    return 0;
}

 

posted @ 2020-01-27 06:35  FLydoggie  阅读(280)  评论(0)    收藏  举报