#include<bits/stdc++.h>
#define eps 1e-6
using namespace std;
double a,b,c,d;
double f(double x){
return a*x*x*x+b*x*x+c*x+d;
}
int main(){
cin>>a>>b>>c>>d;
for(double i=-100;i<=100.0;i++){
double l=i,r=i+1;
if(abs(f(l))<eps){
printf("%.2f ",l);
continue;
}
if(f(l)*f(r)<0){
while(abs(r-l)>eps){
double mid=(l+r)/2;
if(f(l)*f(mid)<0) r=mid;
else l=mid;
}printf("%.2f ",r);
}
}
return 0;
}
input:1 -4.65 2.25 1.4
正确output:-0.35 1.00 4.00
我的代码:-0.35 1.00 1.00 4.00