2 solutions
-
6
AC呆马:
#include <iostream> #include <cstdio> using namespace std; int main() { double a, b, c,d; cin >> a >> b >> c >> d; for(double i = -100;i <= 100; i+=0.001) { double j = i + 0.001 , y =a * i *i *i+b * i * i + c * i + d,x = a * j * j * j + b * j * j + c * j + d; if(y >= 0 && x <= 0 || y<=0 && x >= 0 ) { double ans=(i + j) / 2; printf("%.2lf ",ans); } } return 0; }
有一行敲得很累,所以请点个赞谢谢!!
-
-1
#include<bits/stdc++.h> using namespace std; double minn=0.0000001; double m,a,b,c,d,e; int k=1; double f1(double x){ return a*x*x*x+b*x*x+c*x+d; } double f2(){ double l=-100; double r=100; for(double i=-100;i<100;i+=1.00000001){ l=i; r=i+1; if(f1(l)*f1(r)>0){ continue; } while(r-l>minn){ m=(l+r)/2; if(f1(m)*f1(l)>0){ l=m; } else{ r=m; } } cout<<setprecision(2)<<fixed<<r<<" "; } } int main(){ cin>>a>>b>>c>>d; f2(); }
- 1
Information
- ID
- 723
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 54
- Accepted
- 20
- Uploaded By