java写一个一元二次方程
时间: 2024-10-11 14:05:13 浏览: 24
实数一元二次方程求解算法-java代码
在Java中,你可以编写一个简单的程序来表示和求解一元二次方程,通常形式为ax^2 + bx + c = 0。这里是一个基本的示例:
```java
import java.util.Scanner;
public class QuadraticEquation {
// 定义一元二次方程的系数变量
double a, b, c;
// 构造函数接收三个系数
public QuadraticEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 计算判别式
private double discriminant() {
return Math.pow(b, 2) - 4 * a * c;
}
// 求解方程
public double[] solve() {
double root1, root2;
if (discriminant() > 0) { // 有两个实根
root1 = (-b + Math.sqrt(discriminant())) / (2 * a);
root2 = (-b - Math.sqrt(discriminant())) / (2 * a);
return new double[]{root1, root2};
} else if (discriminant() == 0) { // 有一个重根
double root = -b / (2 * a);
return new double[]{root};
} else { // 两个复数根
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-discriminant()) / (2 * a);
return new double[]{realPart, imaginaryPart};
}
}
// 主函数,用于获取用户输入并展示结果
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一元二次方程的系数(a, b, c):");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
QuadraticEquation equation = new QuadraticEquation(a, b, c);
double[] roots = equation.solve();
System.out.println("解为:");
for (double root : roots) {
System.out.println(root);
}
}
}
```
在这个程序中,用户会被提示输入a、b、c的值,然后计算并打印出方程的解。
阅读全文