一元二次方程的一般形式为 `ax^2 + bx + c = 0`,求解该方程可以使用求根公式 `x = (-b ± sqrt(b^2 - 4ac)) / (2a)`。以下是使用Python、Java、C++三种语言求解一元二次方程的代码示例:
Python
```python
import math
def solve_quadratic(a, b, c):
discriminant = b 2 - 4 * a * c
if discriminant > 0:
root1 = (-b + math.sqrt(discriminant)) / (2 * a)
root2 = (-b - math.sqrt(discriminant)) / (2 * a)
return root1, root2
elif discriminant == 0:
root = -b / (2 * a)
return root, root
else:
realPart = -b / (2 * a)
imaginaryPart = math.sqrt(-discriminant) / (2 * a)
return complex(realPart, imaginaryPart), complex(realPart, -imaginaryPart)
```
Java
```java
import java.util.Scanner;
public class QuadraticEquationSolver {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入a:");
double a = scanner.nextDouble();
System.out.println("请输入b:");
double b = scanner.nextDouble();
System.out.println("请输入c:");
double c = scanner.nextDouble();
double delta = b * b - 4 * a * c;
if (delta > 0) {
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
System.out.println("该方程有两个解,x1=" + x1 + " x2=" + x2);
} else if (delta == 0) {
double x1 = -b / (2 * a);
System.out.println("该方程有一个唯一解,x1=" + x1);
} else {
System.out.println("方程无实数解");
}
}
}
```
C++
```cpp
include include int main() { int a, b, c; std::cout << "请输入a: "; std::cin >> a; std::cout << "请输入b: "; std::cin >> b; std::cout << "请输入c: "; std::cin >> c; double delta = b * b - 4 * a * c; if (delta > 0) { double x1 = (-b + sqrt(delta)) / (2 * a); double x2 = (-b - sqrt(delta)) / (2 * a); std::cout << "该方程有两个解,x1=" << x1 << " x2=" << x2 << std::endl; } else if (delta == 0) { double x1 = -b / (2 * a); std::cout << "该方程有一个唯一解,x1=" << x1 << std::endl; } else { std::cout << "方程无实数解" << std::endl; } return 0; } ``` 建议 根据你的需求和熟悉程度选择Python、Java或C++。Python代码简洁易读,Java适合大型项目,C++性能更高。 确保你理解一元二次方程的求根公式及其背后的数学原理。 当判别式 `delta` 为0或负数时,程序需要正确处理并输出相应的结果。 编写测试用例,确保程序在各种情况下都能正确运行。选择合适的编程语言:
理解求根公式:
处理特殊情况:
测试不同情况: