提交时间:2024-03-09 16:22:38
运行 ID: 136934
#include<bits/stdc++.h> using namespace std; double a,b,c,d; int main() { scanf("%lf%lf%lf%lf",&a,&b,&c,&d); for(double i = -100;i < 100;i++){ if(a*i*i*i+b*i*i+c*i+d == 0){ printf("%.2lf ",i); continue; } if((a*i*i*i+b*i*i+c*i+d)*(a*(i+1)*(i+1)*(i+1)+b*(i+1)*(i+1)+c*(i+1)+d) < 0){ double left = i,right = i+1; while(right - left > 0.00001){ double mid = (left + right)/2; if((a*left*left*left+b*left*left+c*left+d) * (a*mid*mid*mid+b*mid*mid+c*mid+d) < 0){ right = mid; }else{ left = mid; } } printf("%.2lf ",left); } } return 0; }