C++程序 找到二次方程的根
给定形式为 ax 2 + bx + c ** 的二次方程,找到它的 **根 。
Examples :
输入 : a = 1, b = -2, c = 1
输出 : 根是实数且相同
1
输入 : a = 1, b = 7, c = 12
输出 : 根是实数且不同
-3, -4
输入 : a = 1, b = 1, c = 1
输出 : 根是复数
-0.5 + i1.73205
-0.5 – i1.73205
以下是几个重要的情况。
如果 b*b < 4*a*c
,则根是复数
(不是实数)。
例如,x2 + x + 1的根是
-0.5 + i0.86603和-0.5 – i0.86603
如果 b*b == 4*a*c
,则根是实数
并且两个根是相同的。
例如,x2 – 2x + 1的根是1和1
如果 b*b > 4*a*c
,则根是实数
并且不同。
例如,x2 – 7x – 12的根是3和4
以下是上述公式的实现。
输出
时间复杂度: O(log(D)),其中 D 是给定二次方程的鉴别式。
辅助空间: O(1)