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

试题描述:
enter image description here

输入

一行,4个实数 a,b,c,d

输出

一行,3 个实根,从小到大输出,并精确到小数点后 2 位。

样例输入
1 -5 -4 20
样例输出
-2.00 2.00 5.00

#include<bits/stdc++.h>

using namespace std;

double a,b,c,d,i=-100;

double AZ(double x)
{
    return i*i*i*a+i*i*b+i*c+d;//求值函数
}

int main()
{
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    
    for(i;i<=100;i+=0.01)
    {
        if(abs(AZ(i))<0.00001)
        {
            printf("%.2lf ",i);//如果答案足够接近0输出
        }
    } 
    
    return 0;
}

 

posted @ 2022-08-14 19:04  Cirpt  阅读(47)  评论(0)    收藏  举报