790. 数的三次方根(浮点数二分) 题解

跳转链接

https://www.acwing.com/problem/content/792/

题目描述

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

输入格式

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

输出格式

共一行,包含一个浮点数,表示问题的解。 注意,结果保留 6 位小数。

数据范围

-10000≤n≤10000

输入样例

1000.00

输出样例

10.000000

题解思路

直接使用二分,为了保证精度,一般在保留小数位数后增加2位 如保留6位小数,则循环条件为r - l > 1e-8 浮点数二分没有整数二分那么复杂,mid不需要补1,l和r也可以在判断中直接变mid

代码

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

int main()
{
    double l = -10000, r = 10000, x;
    cin >> x;
    
    while(r - l > 1e-8)
    {
        double mid = (l + r) / 2;
        if(mid * mid * mid >= x) r = mid;
        else l = mid;
    }
    
    printf("%lf", l);
    return 0;
}
730. 机器人跳跃问题 题解
789. 数的范围(整数二分) 题解
Valaxy v1.0.0-rc.3 驱动|主题-Yunv1.0.0-rc.3