2차 방정식 인수분해

2차 방정식 인수분해를 프로그래밍 해보자.
   (a는 0이 아니다)

해는 다음과 같이 구할수 있다.



판별식 D 값으로 해가 몇개 있는지 알수 있다.

D = b2 − 4ac

D > 0이면, 두 개의 서로 다른 실근을 가진다.
D = 0이면, 하나의 실근을 가진다.
D < 0이면, 두개의 서로 다른 허근을 가진다.

C++ 코드는 다음과 같다.

void factorization2(double a, double b, double c, std::vector<double>& outList)
{
     double d = b * b - 4.0 * a * c;
     if(d < 0)
         return;
     else if(d == 0)
     {
          double r = -b / ( 2.0 * a );
          outList.push_back(r);
     }
     else
     {
         double r1 = ( -b + sqrt(d) ) / ( 2.0 * a );
         double r2 = ( -b - sqrt(d) ) / ( 2.0 * a );
         outList.push_back(r1);
         outList.push_back(r2);
     }
}

std::vector<double> resultList;
factorization2(1, 2, 1, resultList);  //x^2 + 2x + 1 = 0, result -1
std::vector<double> resultList2;
factorization2(1, 3, 2, resultList2);  //x^2 + 3x + 2 = 0, result -1, -2

x^2 + 2x + 1 = 0 방정식의 결과는 -1이다.
x^2 + 3x + 2 = 0 방정식의 결과는 -1, -2 두개이다.

참조)
https://ko.wikipedia.org/wiki/이차_방정식