一元三次方程求解 题解
2023-08-27 10:14:30
发布于:广东
9阅读
0回复
0点赞
AC代码
#include <bits/stdc++.h>
typedef double dbl;
using namespace std;
dbl a,b,c,d;
dbl de(dbl x){
dbl y=((a*x+b)*x+c)*x+d;
return y;
}
int main(){
cin>>a>>b>>c>>d;
for(dbl i=-100;i<=100;i++){
dbl f1=de(i);
dbl f2=de(i+1);
if(f1*f2<=0){
if(f1==0)
printf("%.2f ",i);
else if(f2==0){
printf("%.2f ",i+1);
i++;
}else{
dbl l=i,r=i+1;
dbl mun;
while(r-l>1e-3){
mun=l+(r-l)/2.0;
if(de(l)*de(mun)<=0)
r=mun;
else
l=mun;
}
printf("%.2f ",mun);
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个