枚举,二分,AC
2024-06-08 22:33:31
发布于:上海
10阅读
0回复
0点赞
题目说了根与根之差的绝对值 。那么我们可以枚举-100到100。如果 上有根(判定方法题目给你了),那么我们就二分找根。找根的误差是 ,我们设为 即可。时间复杂度 。
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
double a,b,c,d;
inline double f(double x){
return ((a*x+b)*x+c)*x+d;
}
int main(){
cin>>a>>b>>c>>d;
for(int i=-100; i<100; i++){
double tmp=f(i);
if(tmp==0){
cout << fixed << setprecision(2) << (double)i << " ";
// i++;
}
if(tmp*f(i+1)<0){
double l=i, r=i+1;
while(r-l>=0.001){
double m=(l+r)/2;
if(f(l)*f(m)<0) r=m;
else l=m;
}
cout << fixed << setprecision(2) << l << " ";
}
}
return 0;
}
这里空空如也
有帮助,赞一个