题解:B2053 求一元二次方程
Nt_Tsumiki · · 题解
upd
21-10-16:修改了一些错误
题意
题目传送门
指定一个方程:
做法
题意简单明了,很明显需要一个东西:
-
x_1=\dfrac{-b+\sqrt{\Delta}}{2a} -
x_2=\dfrac{-b-\sqrt{\Delta}}{2a}
可以发现因为
Code
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
double a,b,c;
int main() {
cin>>a>>b>>c;
double delta=b*b-4*a*c;
if (delta>0) {
double x1=(-b+sqrt(delta))/(2*a);
double x2=(-b-sqrt(delta))/(2*a);
if (x1>x2) {
swap(x1,x2);
}
printf("x1=%.5lf;x2=%.5lf",x1,x2);
} else if (delta==0) {//delta为零其根也为零,所以x1=x2
double x1=(-b+sqrt(delta))/(2*a);
double x2=(-b-sqrt(delta))/(2*a);
printf("x1=x2=%.5lf",x1);
} else {
cout<<"No answer!";//delta小于零
}
return 0;
}