信奧一本通題南沙陳老師解題 1058:求一元二次方程

南沙区信奥赛陈老师發表於2024-08-30

【題目描述】

【輸入】

輸入一行,包含三個浮點數a,b,ca,b,c(它們之間以一個空格分開),分別表示方程ax2+bx+c=0ax2+bx+c=0的係數。

【輸出】

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

若兩個實根相等,則輸出形式為:“x1=x2=...x1=x2=...”;

若兩個實根不等,在滿足根小者在前的原則,則輸出形式為:“x1=...;x2=...x1=...;x2=...“;

若無實根輸出“No answer!”。

所有輸出部分要求精確到小數點後5位,數字、符號之間沒有空格。

【輸入樣例】

-15.97 19.69 12.02

【輸出樣例】

x1=-0.44781;x2=1.68075

#include <bits/stdc++.h>
using namespace std;
int main()
{
	double a,b,c,x1,x2;
	cin>>a>>b>>c;
	double delta=b*b-4*a*c;
	if(delta<0)
		cout<<"No answer!";
	else 
	{
		
		x1=(-b+sqrt(delta))/(2*a);
		x2=(-b-sqrt(delta))/(2*a);
		if(x1==x2)	printf("x1=x2=%.5lf",x1);
		else if(x1>x2)
			printf("x1=%.5lf;x2=%.5lf",x2,x1);
		else
			printf("x1=%.5lf;x2=%.5lf",x1,x2);
	}
	return 0;
}
信奧一本通題南沙陳老師解題 1058:求一元二次方程

相關文章