1 条题解

  • 0
    @ 2026-10-25 15:22:53

    思路

    不同实根分段定位与二分逼近,处理端点和负零;也可解析求根。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    double b,c,d;double f(double x){return ((x+b)*x+c)*x+d;}int main(){double a;cin>>a>>b>>c>>d;b/=a;c/=a;d/=a;vector<double>out;for(int i=-100;i<100;i++){double l=i,r=i+1,fl=f(l),fr=f(r);if(abs(fl)<1e-7)out.push_back(l);if(fl*fr<0&&abs(fl)>=1e-7&&abs(fr)>=1e-7){for(int j=0;j<80;j++){double m=(l+r)/2;if(f(l)*f(m)<=0)r=m;else l=m;}out.push_back((l+r)/2);}}if(abs(f(100))<1e-7)out.push_back(100);sort(out.begin(),out.end());cout<<fixed<<setprecision(2);for(int i=0;i<(int)out.size();i++){if(i)cout<<' ';double x=out[i];if(abs(x)<1e-7)x=0;cout<<x;}cout<<'\n';}
    
    • 1

    信息

    ID
    1141
    时间
    1000ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者