编写程序,求解一元二次方程x2-10x+16=0。
时间: 2024-10-09 16:00:50 浏览: 45
要编写一个程序来解决一元二次方程 `ax^2 + bx + c = 0`,其中给定的例子是 `x^2 - 10x + 16 = 0`,我们可以使用公式法(也称为韦达定理)来找到根。以下是Python代码示例:
```python
import cmath
def solve_quadratic_equation(a, b, c):
"""
计算一元二次方程 a*x^2 + b*x + c = 0 的根
参数:
a (float): 二次项系数
b (float): 一次项系数
c (float): 常数项
返回值:
roots (list): 方程的两个实数根或复数根
"""
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b - cmath.sqrt(discriminant)) / (2*a)
roots = [root1.real, root2.real]
elif discriminant == 0:
root = -b / (2*a)
roots = [root, root]
else: # 当判别式小于0,有虚数根
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-discriminant) / (2*a)
roots = [real_part, complex(real_part, imaginary_part)]
return roots
# 示例:解决 x^2 - 10x + 16 = 0
a = 1
b = -10
c = 16
solution = solve_quadratic_equation(a, b, c)
print(f"方程 {a}x^2 + {b}x + {c} = 0 的解是: {solution}")
# 输出结果会包含浮点数解,因为即使解是整数,cmath库也会返回复数形式的小数部分
阅读全文