CF20B Equation(一元二次方程求解)

题意:

求解一个一元二次方程,并将解升序输出。

题解;

模拟题意即可,要处理很多细节。

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+100;

long double a,b,c;
int main () {
    
    scanf("%Lf %Lf %Lf",&a,&b,&c);
    if (a==0&&b==0&&c==0) {
        return printf("-1
"),0;
    }
    if (a==0&&b==0&&c!=0) {
        return printf("0
"),0;
    }
    if (a==0) {
        return printf("1
%.10Lf
",-1.0*c/b),0;
    }
    long double d=(b*b-4*a*c);
    if (d<0) {
        return printf("0
"),0;
    }
    if (d==0) {
        return printf("1
%.10Lf
",-1.0*b/(2*a)),0;
    }
    printf("2
");
    if (a>0)
        printf("%.10Lf
",(-1.0*b-sqrt(d))/(2*a)),
        printf("%.10Lf
",(-1.0*b+sqrt(d))/(2*a));
    else 
        printf("%.10Lf
",(-1.0*b+sqrt(d))/(2*a)),
        printf("%.10Lf
",(-1.0*b-sqrt(d))/(2*a));
    return 0;
}
原文地址:https://www.cnblogs.com/zhanglichen/p/13635172.html