Problem Description
求一元二次方程ax2+bx+c=0的解。a,b,c为任意实数。
Input
输入数据有一行,包括a b c的值。
Output
按以下格式输出方程的根x1和x2。x1和x2之间有一个空格。
x1 x2
(1)如果x1和x2为实根,则以x1>=x2输出。
(2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0。
其中,x1, x2, m,n均保留2位小数。
Sample Input
1 2 3
Sample Output
-1.00+1.41i -1.00-1.41i
#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
double a,b,c,d,s;
cin >> a >> b >> c;
cout << fixed << setprecision(2);
if(b*b-4*a*c>=0)
{
s=(-b+sqrt(b*b-4*a*c))/(2*a);
d=(-b-sqrt(b*b-4*a*c))/(2*a);
if(s>d)
{
cout << s << ' ' << d << endl;
}
else
{
cout << d << ' ' << s << endl;
}
}
else
{
cout << -b/(2*a) << '+' << sqrt(4*a*c-b*b)/(2*a) << 'i' << ' ' << -b/(2*a) << '-' << sqrt(4*a*c-b*b)/(2*a) << 'i' << endl;
}
return 0;
}