zoukankan      html  css  js  c++  java
  • AcWing 790. 数的三次方根

    题目传送门

    一、理解与感悟

    浮点数二分还是很简单的,最开始使劲设置最大和最小,精度一般设为\(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;
    }
    
  • 相关阅读:
    HDU 4508
    HDU 4503
    HDU 4532
    HDU 4544
    HDU 3167 KMP
    HDU 4542
    HDU 4528
    【70】自然语言处理与词嵌入
    【69】循环神经网络
    【68】一维和三维卷积
  • 原文地址:https://www.cnblogs.com/littlehb/p/15234625.html
Copyright © 2011-2022 走看看