0037-解一元二次方程

题目

解一元二次方程
难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述
也许你还不了解什么是一元二次方程,但聪明的你小小钻研一下就会很好地掌握。形如ax^2+bx+c=0(a不为0)的关于x的方程称为一元二次方程,a,b,c为该一元二次方程的系数。输入三个数a,b,c分别表示一元二次方程的三个系数(二次项系数、一次项系数和常数项),编写程序计算并输出该方程的解的情况。
输入
符合题目描述要求的三个数(两两之间用一个空格分隔),依次为一元二次方程的系数。
输出
如果有两个不等解先小后大输出,由一个空格隔开,如果有两个相等的解只输出其中的一个数,如果无实数解就输出“No”。 
输入示例
1 -5 6
输出示例
2 3
其他说明
所有输入数据都在-1000到1000范围内,如果有解也在-1000到1000范围内,且输入输出均为整数。 

分析

    先把结果存储一下,然后判断属于哪种类型,最后按要求输出。

代码

#include<bits/stdc++.h>
using namespace std;
double a,b,c;
int main()
{
	cin>>a>>b>>c;
	if(b*b-4*a*c<0) printf("No");//判断属于哪种情况并输出对应结果。
	if(b*b-4*a*c==0) cout<<-b/(2*a);
	if(b*b-4*a*c>0) cout<<(-b-sqrt(b*b-4*a*c))/(2*a)<<" "<<(-b+sqrt(b*b-4*a*c))/(2*a);
	return 0;
}
作者:18西斯光剑
出处:https://www.cnblogs.com/DARTH-VADER-EMPIRE/
Copyright ©2018-2020 18西斯光剑
All Rights Reserved.
原文地址:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9501682.html