求一元二次方程的根

时间限制: C/C++/Pascal 1000 ms; Others 2000 ms

内存限制: 256 MB

题目描述:

利用公式

x_1 = (-b + sqrt(b*b-4*a*c))/(2*a) ,

x_2 = (-b - sqrt(b*b-4*a*c))/(2*a)

求一元二次方程 ax^2+ bx + c =0 的根,其中a不等于0。

输入格式:

输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程 ax^2 + bx + c =0 的系数。

输出格式:

输出一行,表示方程的解。

  • b^2 = 4 * a * c ,则两个实根相等,则输出形式为: x_1=x_2=...
  • b^2 > 4 * a * c ,则两个实根不等,则输出形式为: x_1=...;x_2 = ... ,其中 x_1>x_2
  • b^2 < 4 * a * c ,则有两个虚根,则输出: x_1=实部+虚部i ; x_2=实部-虚部i ,即 x_1 的虚部系数大于等于 x_2 的虚部系数,实部为 0 时不可省略。 实部 = -b / (2*a) , 虚部 = sqrt(4*a*c-b*b) / (2*a)

所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。

样例:

Input
Copy
1.0 2.0 8.0
Output
Copy
x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
Input
Copy
1 0 1
Output
Copy
x1=0.00000+1.00000i;x2=0.00000-1.00000i

数据范围及提示

-100<=a,b,c<=100,其中a不等于0

8 人解决,12 人已尝试。

8 份提交通过,共有 35 份提交。

公开: cww970329

来源:

题目信息

题目类型:传统题

标准IO

AMAZE UI
Hello world!