NOIP 2001 一元三次方程求解

NOIP 2001 一元三次方程求解

可以利用 二分法或者 枚举法求解,需要注意的是 浮点误差,以及系数不一定为整数.
 1 #include < stdio.h >
 2 double  a, b, c, d;
 3 double  abs ( double  n)  {return (n > 0? n : - n;}
 4 double  f( double  x)  {return (((a*x)+b)*x+c)*x+d;}
 5 int  main()
 6 {
 7    int k = 0;
 8    scanf("%lf%lf%lf%lf"&a, &b, &c, &d);
 9    for (double i = -10000; i < 10001; i++)
10    {
11        if (abs(f(i/100)) < 1e-8)
12        {
13            k++; printf("%.2lf"double(i/100));
14            if (k < 3) printf(" ");
15                else printf("\n");
16            i += 10;
17        }

18    }

19}

20

你可能感兴趣的:(NOIP 2001 一元三次方程求解)