658. 一元二次方程公式
读取三个浮点数 a,b,ca,b,c 的值,利用一元二次方程求根公式对方程 ax^2 + bx + c = 0 进行求解。
如果 b^2 − 4ac < 0 导致方程无解或 a = 0,则输出 Impossivel calcular
。
输入格式
输入三个浮点数 a,b,c。
输出格式
参照输出格式,输出方程的根,输出结果保留五位小数,如果无解则输出 Impossivel calcular
。
两个根可以按任意顺序输出,都算正确。
数据保证不存在只有一个解的情况。
数据范围
−1000.0≤a,b,c≤1000.0
输入样例:
10.0 20.1 5.1
输出样例:
R1 = -0.29788
R2 = -1.71212
#include <cstdio>
#include <cmath>
int main()
{
double a, b, c, d, x1, x2;
scanf("%lf%lf%lf", &a, &b, &c);
d = b * b - 4 * a * c;
if (d < 0 || a == 0) printf("Impossivel calcular\n");
else
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("R1 = %.5lf\nR2 = %.5lf\n", x1, x2);
}
return 0;
}