、编写一个程序,从键盘读入一元二次方程ax2 + bx + c = 0的系数a,b,c,计算输出其两个根。提示:开方(Math.sqrt(b*b-4*a*c))
时间: 2024-10-16 20:08:17 浏览: 37
算法分析与设计一元二次方程求解
5星 · 资源好评率100%
在Python中,你可以使用cmath模块来进行复数运算,因为一元二次方程的解可能存在实数解或复数解。下面是一个简单的程序示例,它会从用户输入获取系数a, b, c,并计算出方程的两个根:
```python
import cmath
def calculate_roots(a, b, c):
# 计算判别式
discriminant = (b**2) - (4 * a * c)
# 如果判别式大于0,则有两个实数解
if discriminant > 0:
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
# 判别式等于0,则有一个实数解
elif discriminant == 0:
root = -b / (2 * a)
return root, root
# 判别式小于0,则有两对共轭复数解
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
root1 = complex(real_part, imaginary_part)
root2 = complex(real_part, -imaginary_part)
return root1, root2
# 从用户那里获取输入
a = float(input("请输入系数a: "))
b = float(input("请输入系数b: "))
c = float(input("请输入系数c: "))
# 计算并打印根
roots = calculate_roots(a, b, c)
print(f"一元二次方程 {a}x^2 + {b}x + {c} 的根为: {roots}")
阅读全文