求助大佬为什么解差1或0.01?奇怪
查看原帖
求助大佬为什么解差1或0.01?奇怪
601009
S1746楼主2022/9/23 18:08
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int a,b,c,d;
double x(double m){
    double k;
    k=a*m*m*m+b*m*m+c*m+d;
    return k;
}
int main (){
cin>>a>>b>>c>>d;
double l,m,n;
int s=0;
for(double i=-100.0;i<100.0;i++){//0
    if(abs(x(i))<0.01){
        printf("%.2lf",i);
        cout<<" ";
        s++;
        continue;
    }
    l=i;
    m=i+1;
    if(x(l)*x(m)>0){
        continue;
    }
    while(m-l>0.01){//2
    n=(l+m)/2;
         if(x(n)*x(l)<0){//4
            m=n;
    }//4
    else{//3
        l=n;
    }//3
 }//  2
 printf("%.2lf",l);
 s++;
 if(s==3){//1
        break;
    }//1
}//0
return 0;
}
2022/9/23 18:08
加载中...