编程求解一元二次方程(分支嵌套)
时间: 2024-12-10 17:29:50 浏览: 8
一元二次方程的一般形式是 ax^2 + bx + c = 0,其中 a、b 和 c 是常数,a ≠ 0。在编程中,解决这类问题通常涉及使用公式法,即计算判别式 D = b^2 - 4ac 来确定根的性质:
1. **当 D > 0** (即有两个实数根),我们可以使用公式 x = [-b ± sqrt(D)] / (2a) 来找到两个根。
2. **当 D = 0** (即有一个重根或双根),根的值为 x = -b / (2a)。
3. **当 D < 0** (即无实数根,有复数根),由于涉及到平方根下的负数,需要引入虚数 i,并计算 x = [-b ± sqrt(-D)] / (2a)。
这是一个典型的分支嵌套结构,因为程序会根据判别式的值选择不同的路径来计算结果。以下是这个过程的一个简单Python示例:
```python
import cmath
def solve_quadratic(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return f"两个实数根:{root1.real:.2f}, {root2.real:.2f}"
elif discriminant == 0:
root = -b / (2 * a)
return f"一个重根:{root:.2f}"
else: # D < 0
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
return f"两个复数根:{real_part:.2f} + {imaginary_part:.2f}i, {real_part:.2f} - {imaginary_part:.2f}i"
# 示例
result = solve_quadratic(1, -3, 2)
print(result) # 输出:两个实数根:1.00, 2.00
```
阅读全文