实数二分

【问题描述】
给定一个浮点数 n,求它的三次方根。

【输入格式】
共一行,包含一个浮点数 n。

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

【数据范围】
−10000 ≤ n ≤ 10000

【输入样例】
1000.00

【输出样例】
10.000000


题解:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    double n;
    cin >> n;
    
    double l = -10000, r =10000;
    while(r - l > 1e-8)
    {
        double mid = (l + r) / 2;
        
        if(mid*mid*mid >= n) r = mid;
        else l = mid;
    }
    
    printf("%lf", l);
    
    return 0;
}
发布了63 篇原创文章 · 获赞 5 · 访问量 828

猜你喜欢

转载自blog.csdn.net/weixin_46239370/article/details/105402388