import java.util.Scanner
public class 一元二次方程 {
public static void main(String[] args) {
System.out.println("请输入你一元二次方程的a,b,c")
Scanner input=new Scanner(System.in)
int a=input.nextInt()
int b=input.nextInt()
int c=input.nextInt()
double d=b*b-4*a*c
double e,f
if (d==0){
System.out.println("这是个完全平方")
e=f=-b/2*a
System.out.print(e)
}
else if(d<0) {
System.out.println("无效根")
}
else {
System.out.println("这是个不完全平方,需要用求根公式")
double g=Math.sqrt(Math.abs(b))
e=-(b+g)/2*a
f=-(e)
System.out.println("第一根是"+e)
System.out.println("第二根是"+f)
}
}
}
这是我的运行结果
扩展资料:
利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。
需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数
以下是定义一元二次方程类、封装系数及其求根方法的示例代码:
public class Equation {
private double a
private double b
private double c
// 封装系数
public void setA(double a) {
this.a = a
}
public double getA() {
return a
}
public void setB(double b) {
this.b = b
}
public double getB() {
return b
}
public void setC(double c) {
this.c = c
}
public double getC() {
return c
}
// 求根方法
public void solve() {
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 + "和" + x2)
} else if (delta == 0) {
double x = -b / (2 * a)
System.out.println("方程的解为:" + x)
} else {
System.out.println("方程无解")
}
}
}
在main()方法中定义一个一元二次方程对象并调用求根方法,可以这样写:
public static void main(String[] args) {
// 创建一个一元二次方程对象
Equation eq = new Equation()
// 设置系数
eq.setA(1)
eq.setB(2)
eq.setC(1)
// 调用求根方法
eq.solve()
}
上面的代码会输出:方程的解为:-1.0。
import java.util.Scannerpublic class Test30009{
public static void main(String args[]){
int repeat, ri
int a,b,c,d
double x1 = 0,x2
Scanner in=new Scanner(System.in)
repeat=in.nextInt()
for(ri = 1ri <= repeatri++){
a=in.nextInt()b=in.nextInt()c=in.nextInt()
d=b*b-4*a*c
if(a==0&&b==0&&c==0)
System.out.println("a=b=c=0,meaningless")
else if(a==0&&b==0)
System.out.println("a=b=0,c!=0,error")
else if(a==0){
x1=-c*1.0/b
System.out.println("x="+String.format("%.2f", x1))
}else if(d>0||d==0){
x1=(-b+Math.sqrt(d))/(2*a)
x2=(-b-Math.sqrt(d))/(2*a)
System.out.println("x1="+String.format("%.2f", x1))
System.out.println("x2="+String.format("%.2f", x2))
}else{
x1=-b*1.0/(2*a)
x2=Math.sqrt(-d)/(2*a)
System.out.println("x1="+String.format("%.2f", x1)+"+"+String.format("%.2f", x2)+"i")
System.out.println("x2="+String.format("%.2f", x1)+"-"+String.format("%.2f", x2)+"i")
}
}
}
}