[NOIP2001 提高组] 一元三次方程求解

[NOIP2001 提高组] 一元三次方程求解

题目描述:

这道题就是一道简单的暴力枚举,做的时候要注意一下double精度,当然用二分做的话肯定会更好(虽然我也不会)

代码如下:

#include<iostream>
#include<cstdio> 
#include<cmath>
using namespace std;
double a,b,c,d;
//double f(double x)    不会做,换了思路 
//{
//    return a*x*x*x+b*x*x+c*x+d;
//}
int main()
{
    cin>>a>>b>>c>>d;//输入 
    for(double i=-100;i<=100;i+=0.01)  //枚举每个答案 
    {
        if(fabs(i*i*i*a+i*i*b+i*c+d)<0.01)//避免double精度错误 
          printf("%.02lf ",i);         //两位小数输出 
    }
    return 0;
}

 

posted @ 2022-08-21 20:10  为么要取名字  阅读(14)  评论(0编辑  收藏  举报