我正在尝试用 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。
好吧,我猜有两个问题,我可以把上面的写得更好,也可以解释复数吗?
谢谢你的帮助!