AcWing 790 数的三次方根

题目描述:

给定一个浮点数n,求它的三次方根。

输入格式

共一行,包含一个浮点数n。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留6位小数。

数据范围

−10000≤n≤10000

输入样例:

1000.00

输出样例:

10.000000

分析:

浮点数二分模板题。注意事项:题目要求保留几位小数,比如6位,浮点数在比较大小时一般需要比较到后两位,也就是8位。

以及,浮点数求mid值还是直接除以2比较好,直接移位会报错。

#include 
using namespace std;
int main(){
    double x;
    scanf("%lf",&x);
    double l = -100,r = 100;
    while(r - l > 1e-8){
        double mid = (l + r) / 2;
        if(mid * mid * mid <= x)    l = mid;
        else    r = mid;
    }
    printf("%.6lf\n",l);
    return 0;
}

 

你可能感兴趣的:(算法基础课)