如何用java编写一元二次方程的求根问题

Python013

如何用java编写一元二次方程的求根问题,第1张

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.Scanner

public 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")

}

}

}

}