1 条题解

  • 1

    思路

    虽然可以用二分,但是数据范围很小,所以我们暴力出奇迹。

    代码 (看不懂的建议回炉重造)

    #include<bits/stdc++.h>
    using namespace std;
    float a,b,c,d;
    int cnt=1;
    float equ(float x){
    	return a*x*x*x+b*x*x+c*x+d;
    }
    int main(){
    	cin>>a>>b>>c>>d;
    	for(float i=-100.00;cnt<=3;i+=0.001){//只需要找到三个解就行
    		if(equ(i)*equ(i+0.001)<0){
    			printf("%.2f ",i);
    			cnt++;
    		}
    	}
    	return 0;
    }
    
    • 1

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

    信息

    ID
    358
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    3
    上传者