编程求解一元二次方程 ax2+bx+c=0,a、b、c 由键盘输入,设 b2-4ac>0。
时间: 2024-09-27 22:02:41 浏览: 43
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
一元二次方程的求解通常涉及使用公式法,特别是针对标准形式的方程 `ax^2 + bx + c = 0`,其中 a、b 和 c 是已知系数,且判别式 `D = b^2 - 4ac` 要大于零,意味着方程有两个实数根。以下是求解步骤:
1. 首先,计算判别式 D:`D = b^2 - 4 * a * c`
2. 然后,根据判别式的值确定两个根的公式:如果 D > 0,那么两个根是 `x1 = (-b + sqrt(D)) / (2 * a)` 和 `x2 = (-b - sqrt(D)) / (2 * a)`
3. 如果 D = 0,则方程有一个重根 `x = -b / (2 * a)`
4. 最后,如果 D < 0,方程无实根,但是可以有复数根。
在编程时,你可以编写循环来接收用户输入的 a、b 和 c 值,然后按照上述公式计算并打印出根。对于编程语言如Python,你会看到类似这样的代码:
```python
import math
# 用户输入
a = float(input("请输入a的值: "))
b = float(input("请输入b的值: "))
c = float(input("请输入c的值: "))
# 计算判别式
D = b ** 2 - 4 * a * c
if D > 0:
x1 = (-b + math.sqrt(D)) / (2 * a)
x2 = (-b - math.sqrt(D)) / (2 * a)
print("根1:", x1)
print("根2:", x2)
elif D == 0:
x = -b / (2 * a)
print("唯一实根:", x)
else:
real_part = -b / (2 * a)
imaginary_part = math.sqrt(-D) / (2 * a)
print("根为复数:", f"{real_part} + {imaginary_part}i 和 {real_part} - {imaginary_part}i")
```
阅读全文