P1024 一元三次方程求解

Posted jackwang-sparrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1024 一元三次方程求解相关的知识,希望对你有一定的参考价值。

采用分治思想

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
double a,b,c,d;
double f(double x)
{
    return a*pow(x,3)+b*pow(x,2)+c*x+d;
}
int main()
{
    int s=0;
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    double i,j;
    for(i=-100; i<=100; i++)
    {
        j=i+1;
        if(f(i)==0)
        {
            if(s)
            {
                printf(" ");
            }
            s++;
            printf("%.2lf",i);
        }
        if(f(i)*f(j)<0)
        {
            double l,r,mid;
            l=i;r=j;
            while(r-l>=0.001)
            {
                mid=(l+r)/2;
                if(f(mid)*f(l)<0)
                {
                    r=mid;
                }
                else
                {
                    l=mid;
                }
            }
            if(s)
            {
                printf(" ");
            }
            s++;
            printf("%.2lf",r);
        }
    }
}

 

以上是关于P1024 一元三次方程求解的主要内容,如果未能解决你的问题,请参考以下文章

P1024 一元三次方程求解

[NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)

洛谷 [P1024]一元三次方程求解二分答案

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

一元三次方程组求解 luogu P1024

1238:一元三次方程求解