-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path1.6.Step12.cpp
47 lines (43 loc) · 1.57 KB
/
1.6.Step12.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
1.6 Действительные числа. Шаг 12
Даны действительные коэффициенты a, b, c.
Решите уравнение ax2 + bx + c = 0 и выведите все его корни.
Формат входных данных:
Вводятся три действительных числа.
Формат выходных данных:
Если данное уравнение не имеет корней, выведите число 0.
Если уравнение имеет один корень, выведите число 1, а затем этот корень.
Если уравнение имеет два корня, выведите число 2, а затем два корня в порядке возрастания.
Если уравнение имеет бесконечно много корней, выведите число 3.
Sample Input: 1 -1 -2
Sample Output: 2 -1 2
*/
#include <iostream>
#include <cmath>
using namespace std;
int main() {
while (true) {
double a, b, c, D, x1, x2;
cin >> a >> b >> c;
if (a == 0 && b == 0 && c == 0)
cout << "3";
if (a == 0 && b == 0 && c != 0)
cout << "0";
if (a == 0 && b != 0)
cout << "1 " << -c / b;
if (a != 0) {
D = b * b - 4 * a * c;
x1 = (-b - sqrt(D)) / (2 * a);
x2 = (-b + sqrt(D)) / (2 * a);
if (D > 0) {
if (x1 < x2) cout << "2 " << x1 << " " << x2;
else cout << "2 " << x2 << " " << x1;
}
if (D == 0)
cout << "1 " << x1;
if (D < 0)
cout << "0";
}
}
return 0;
}