题目传送门

一、理解与感悟

浮点数二分还是很简单的,最开始使劲设置最大和最小,精度一般设为\(1e-8\),然后根据条件写\(check()\),发现符合就向左或向右逼近,直到结果的差,精度在可以接受的范围内,完事。

二、C++代码

#include <bits/stdc++.h>

using namespace std;
const double eps = 1e-8;   // eps表示精度,取决于题目对精度的要求,6位小数,就是1e-8,5位就是1e-7

//三次方根:浮点数的二分,说白了就是个试,找到了算,但不是傻找,而是一半一半找。
int main() {
    //优化输入
    ios::sync_with_stdio(false);
    double x;
    cin >> x;
    //−10000≤n≤10000
    double l = -10000, r = 10000;
    //浮点数二分模板
    while (r - l > eps) {
        //中值
        double mid = (l + r) / 2;
        //检查函数
        if (mid * mid * mid >= x) r = mid; //向左逼近
        else l = mid;//向右逼近
    }
    printf("%.6lf\n", l); //默认保留6位小数
    return 0;
}

相关文章:

  • 2022-12-23
  • 2021-09-20
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-09-29
  • 2022-12-23
猜你喜欢
  • 2021-10-14
  • 2022-12-23
  • 2021-12-31
  • 2021-11-28
  • 2022-12-23
  • 2021-08-16
相关资源
相似解决方案