1 solutions
-
0
C++ :
#include<iostream> #include<cmath> using namespace std; double x[3]; double a,b,c,d,u,v; int i,t; double f(double x) { double temp; temp=((a*x+b)*x+c)*x+d; return temp; } int main() { while(cin>>a>>b>>c>>d) { t=-1; for(i=-100;i<=100;i++) { u=double(i); v=u+0.99999; if(fabs(f(u))<0.00001||f(u)*f(v)<=0) { t++; if(fabs(f(u))<0.00001) x[t]=u; else { while((u+0.001<v)&&fabs(f((u+v)/2))>=0.00001) { if(f(u)*f((u+v)/2)<0) v=(u+v)/2; else u=(u+v)/2; } x[t]=(u+v)/2; } } } cout.setf(ios::fixed); cout.precision(2); cout<<x[0]<<" "<<x[1]<<" "<<x[2]<<endl; } return 0; }Pascal :
Program a2; Var t,k:integer; a,b,c,d,x:extended; ans:array[1..3] of extended; Function f(x:extended):extended; Begin f:=a*x*x*x+b*x*x+c*x+d; End; Begin t:=0; Read(a,b,c,d); For k:=-10000 to 10000 do Begin x:=k/100; If (f(x-0.005)*f(x+0.005)<0 ) or (f(x-0.005)=0) then begin inc(t); ans[t]:=x; end; End; writeln(ans[1]:0:2,' ',ans[2]:0:2,' ',ans[3]:0:2); End.
- 1
Information
- ID
- 17150
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By