Я пытаюсь написать функцию на C ++, которая решает для X, используя квадратное уравнение. Это то, что я написал изначально, и, кажется, работает, пока в ответе нет комплексных чисел:
float solution1 = (float)(-1.0 * b) + (sqrt((b * b) - (4 * a * c)));
solution1 = solution1 / (2*a);
cout << "Solution 1: " << solution1 << endl;
float solution2 = (float)(-b) - (sqrt((b*b) - (4 * a * c)));
solution2 = solution2 / (2*a);
cout << "Solution 2: " << solution2;
Если, например, я использую уравнение: x ^ 2 - x - 6, я получаю решение 3, -2 правильно.
Мой вопрос заключается в том, как бы я учел комплексные числа .... например, учитывая уравнение:
x ^ 2 + 2x + 5
Решая вручную, я бы получил -1 + 2i, -1 - 2i.
Ну, я предполагаю два вопроса, могу ли я написать выше, а также сделать это для комплексного числа?
Спасибо за любую помощь!