1 solutions

  • 1
    @ 2024-12-21 19:48:37

    好吧,既然这么多人都不理解的话,那本人就勉强发一篇关于此题的题解吧

    #include<bits/stdc++.h>
    using namespace std;
    double a,b,c,d,s;
    double fc(double x){
    	return a*x*x*x+b*x*x+c*x+d;
    }
    int main(){
    	double l,r,m,x1,x2;
    	scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    	for(int i = -100;i<100;i++){
    		l = i; 
    		r = i+1;
    		x1 = fc(l); 
    		x2 = fc(r);
    		if(!x1){
    			printf("%.2lf ",l); 
    			s++;
    		}
    		if(x1*x2<0){
    			while(r-l>=0.001){
    				m = (l+r)/2;
    				if(fc(m)*fc(r)<=0)l = m; 
    				else r = m;
    			}
    			printf("%.2lf ",r);
    			s++;
    		}
    		if(s == 3)break;
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    667
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    4
    Accepted
    3
    Uploaded By