프로그램 명: quadratic
제한시간: 1 초
2차 방정식이 a*x^2 + b*x + c = 0 형태로 주어질 때, 실수 범위에서 근의 개수와 근을 출력하는 프로그램을 작성해보자.
입력
3개의 정수 a, b, c 가 빈 칸으로 구분되어 입력으로 주어진다. (-100000 < a, b, c < 100000)
출력
- 첫 번째 줄에는 근의 개수를 출력한다. (근이 없으면 0, 1개이면 1, 2개이면 2)
- 두 번째 줄에는 근을 작은 숫자부터 순서대로 빈 칸으로 구분하여 출력한다.
- 근의 값은 소수점 아래 3자리까지 반올림해서 출력한다.
입출력 예
입력 1 -3 1 출력 2 0.382 2.618
출처: KangJ
풀이
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 | #include <iostream> #include <cmath> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; double middle = pow(b, 2) - ((double)4 * a*c); double result1 = (-b + sqrt(middle)) / (2 * a); double result2 = (-b - sqrt(middle)) / (2 * a); if (middle < 0) { cout << "0"; return 0; } cout.precision(3); cout << fixed; if (result1 == result2) { cout << "1" << endl; cout << result1; } else if (result1 < result2) { cout << "2" << endl; cout << result1 << " " << result2; } else { cout << "2" << endl; cout << result2 << " " << result1; } return 0; } | cs |
'algorithm ' 카테고리의 다른 글
더블릿|dovelet - 3번째 계단 - 순차 출력/rep (0) | 2016.08.10 |
---|---|
더블릿|dovelet - 3번째 계단 - 별 출력/star (0) | 2016.08.09 |
더블릿|dovelet - 2번째 계단 - 시 계/clo (0) | 2016.08.08 |
더블릿|dovelet - 2번째 계단 - queen/queen (0) | 2016.08.07 |
더블릿|dovelet - 2번째 계단 - 이윤 구하기/profit (0) | 2016.08.05 |