求解一元二次方程,任意输入系数a b c,给出方程ax+bx+c=0的解
时间: 2024-04-30 20:23:02 浏览: 387
用来输入两个整数a,b,计算出方程ax+b=0的解
根据一元二次方程的求解公式:
若方程ax^2+bx+c=0有实数根,则其根为:
x1=(-b+sqrt(b^2-4ac))/(2a)
x2=(-b-sqrt(b^2-4ac))/(2a)
若方程ax^2+bx+c=0无实数根,则其根为:
x1=(-b+sqrt(4ac-b^2))/(2a)i
x2=(-b-sqrt(4ac-b^2))/(2a)i
其中,i表示虚数单位,即i^2=-1。
因此,可以按照以下步骤求解一元二次方程:
1. 输入系数a、b、c;
2. 判断b^2-4ac的值,若为正数,则方程有两个实数根,使用求解公式计算出解,并输出;若为零,则方程有一个重根,使用求解公式计算出解,并输出;若为负数,则方程无实数根,使用求解公式计算出解,并输出。
下面是Python代码实现:
```python
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b ** 2 - 4 * a * c
if delta > 0:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print(f"方程{a}x^2 + {b}x + {c} = 0的解为:x1 = {x1}, x2 = {x2}")
elif delta == 0:
x = -b / (2 * a)
print(f"方程{a}x^2 + {b}x + {c} = 0的解为:x = {x}")
else:
real = -b / (2 * a)
imag = math.sqrt(-delta) / (2 * a)
print(f"方程{a}x^2 + {b}x + {c} = 0的解为:x1 = {real} + {imag}i, x2 = {real} - {imag}i")
```
示例输出:
```
请输入a的值:1
请输入b的值:-5
请输入c的值:6
方程1.0x^2 + -5.0x + 6.0 = 0的解为:x1 = 3.0, x2 = 2.0
```
```
请输入a的值:2
请输入b的值:-4
请输入c的值:2
方程2.0x^2 + -4.0x + 2.0 = 0的解为:x = 1.0
```
```
请输入a的值:1
请输入b的值:2
请输入c的值:3
方程1.0x^2 + 2.0x + 3.0 = 0的解为:x1 = -1.0 + 1.4142135623730951i, x2 = -1.0 - 1.4142135623730951i
```
阅读全文