码迷,mamicode.com
首页 > 其他好文 > 详细

二分 - bailian 4140:方程求解

时间:2020-04-01 19:39:15      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:cti   abs   return   code   需要   double   string   print   practice   

题目链接

http://bailian.openjudge.cn/practice/4140/
这个题给出的函数是一个单调函数,用数学中的二分法可以求解,这个题需要注意精度问题,题目要求保留9位小数,在误差的选择上需要注意,这里我用的是eps = 1e-8。

cpp代码

#include <cstring>
#include <cstdio>
#include <cmath>

double EPS = 1e-6;

double f(double x){
    return x*x*x - 5*x*x + 10*x - 80;
}

int main(){
    double l = 0, r = 10;
    double root = (l + r)/2;
    while(fabs(f(root)) > EPS){
        root = (l + r) /2;
        if(f(root) > 0)
            r = root;
        else
            l = root;
    }
    printf("%.9f\n", root);
}

二分 - bailian 4140:方程求解

标签:cti   abs   return   code   需要   double   string   print   practice   

原文地址:https://www.cnblogs.com/zhangyue123/p/12614529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!