fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. using namespace std;
  5.  
  6. double eps;
  7. double a,b,c,d;
  8. double f(double x)
  9. {
  10. return a*x*x*x+b*x*x+c*x+d;
  11. }
  12.  
  13. int main()
  14. {
  15. cin>>a>>b>>c>>d;
  16. eps=1e-8;
  17. for(int i=-100;i<100;i++)
  18. {
  19. if(fabs(f(i))<eps)printf("%.2lf ",i);
  20. else if(fabs(f(i+1))<eps||f(i)*f(i+1)>0)continue;
  21. else
  22. {
  23. double l=i,r=i+1;
  24. while(r-l>1e-8)
  25. {
  26. double mid=(l+r)/2.0;
  27. if(f(mid)*f(l)>0)
  28. {
  29. l=mid;
  30. }
  31. else
  32. {
  33. r=mid;
  34. }
  35. }
  36. printf("%.2lf ",l);
  37. }
  38. }
  39. if(fabs(f(100))<eps)printf("%.2lf",100.0);
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 5324KB
stdin
1 5 -4 20
stdout
-6.17