3 条题解

  • 2
    @ 2025-9-20 18:52:37
    #include<bits/stdc++.h>
    using namespace std;
    double a,b,c,d;
    double f(double x){
    	return pow(x,3)*a+pow(x,2)*b+x*c+d;
    }
    int main(){
    	cin>>a>>b>>c>>d;
    	double l=0,r=0,mid=0;
    	for(int i=-100;i<100;i++){
    		l=i,r=i+1;
    		if(f(l)==0){
    			cout<<fixed<<setprecision(2)<<l<<' ';
    		}
    		if(f(l)*f(r)<0){
    			while(r-l>=0.001){
    				mid=(l+r)/2;
    				if(f(l)*f(mid)<0){
    					r=mid;
    				}
    				else{
    					l=mid;
    				}
    			} 
    			cout<<fixed<<setprecision(2)<<r<<' ';
    		}
    	}
    	return 0;
    }
    

    信息

    ID
    653
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    225
    已通过
    77
    上传者