求助第二个检测点没过,我按二分模板写的
查看原帖
求助第二个检测点没过,我按二分模板写的
1340313
mowanggao楼主2024/5/9 15:02

#include #include<math.h> #include using namespace std; const double eps=1e-5; double a,b,c,d; double l,r,x1,x2; double f(double x){ return axxx+bxx+cx+d; } double twofen(double left,double right){ double mid; while(right-left>eps){ mid=(left+right)/2; if(f(mid)>=0){ right=mid; } else left=mid; } return mid; } int main(){ cin>>a>>b>>c>>d; int s=0; //枚举区间因为每个根相差》=1在区间一中最多有1个解,解左右两个函数值肯定是异号的 for(int i=-100;i<=100;i++){ l=i; r=i+1; x1=f(l); x2=f(r); if(!x1){//判断x1是否为0如果x2也判断会输出重复,只是左端点就没问题 printf("%.2f",l); s++; if(s<3)printf(" "); } else if(x1*x2<0){ printf("%.2f",twofen(l,r)); s++; if(s<3)printf(" "); } if(s==3)break; } return 0; } 1 -4.65 2.25 1.4第二检测点数据应该是二分函数有问题但是我按照基本板子敲的

2024/5/9 15:02
加载中...