导航:首页 > 编程语言 > java一元二次方程

java一元二次方程

发布时间:2022-08-24 05:01:28

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

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);

}

}

}

这是我的运行结果

(1)java一元二次方程扩展阅读:

利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。

需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数


⑵ java编程 求解一元二次方程:ax^2+bx+c=0

可以用Scanner 逻辑上应该没错误 import java.util.Scanner; public class Test2 { public static String x(int a,int b,int c){ int x = b*b-4*a*c; double d; if(x<0){ return "无解"; }else{ d = Math.pow(x, 0.5); return (-b-d)/(2*a)+":"+(-b+d)/(2*a); } } public static void main(String[] args) { int m,n,q; Scanner s = new Scanner(System.in); m = s.nextInt(); n = s.nextInt(); q = s.nextInt(); String c = Test2.x(m,n,q); System.out.println(c); } }

⑶ 用Java编程计算一元二次方程的解是怎么写的题目是要求从键盘一次输

importjava.util.Scanner;
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println("请输入a,b,c的值:");
Scanners=newScanner(System.in);
inta=s.nextInt();
intb=s.nextInt();
intc=s.nextInt();
doublex1,x2,t;
t=b*b-4*a*c;
System.out.println("方程"+a+"x*x+"+b+"x+"+c+"=0的解:");
if(t<0){
System.out.println("此方程无解");
}else{
x1=((-b)+Math.pow(t,1/2))/(2*a);
x2=((-b)-Math.pow(t,1/2))/(2*a);
System.out.print("x1="+x1+","+"x2="+x2);
}
}
}

⑷ JAVA求解一元二次方程

public double equation(double a, double b, double c) throws Exception {
if ((2 * a + b) == 0) {
throw new Exception("error:2*a+b=0");
} else if (a == 0) {
return (double) (-c / b);
} else if (b == 0) {
return (double) (-c / 2 * a);
} else {
return (double) (-c / (2 * a + b));
}

}

@Test
public void test5() {
try {
double result = equation(1, 2, 2);
System.out.println("结果---》" + result);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
}

}

⑸ 用JAVA编程求一元二次方程的根,一元二次方程的系数从键盘输入

import
java.util.Scanner;
import
org.junit.Test;
public
class
MyTest
{
/**
*
用JAVA编程求一元二次方程的根,一元二次方程的系数从键盘输入
*
*
测试用例:
*
a
b
c
*
0
*
1
2
3
*
10
0
-100
*
10
0
100
*
10
50
0
*
10
-50
0
*
1
0
0
*/
@Test
public
void
test1(){
Double
a;
Double
b;
Double
c;
Scanner
s
=
new
Scanner(System.in);
System.out.println("一元二次方程格式为:ax^2+bx+c=0(a≠0,且a,b,c是常数)");
System.out.print("请输入a的值:");
a
=
s.nextDouble();
while(a==0){
System.out.println("a不能为0,请重新输入:");
a
=
s.nextDouble();
}
System.out.print("请输入b的值:");
b
=
s.nextDouble();
System.out.print("请输入c的值:");
c
=
s.nextDouble();
double
temp
=
b*b-4*a*c;
if(temp<0){
System.out.println("该方程无解");
}else
if(temp==0){
System.out.println("该方程只有一种解:");
Double
answer
=
((-b)/(2*a));
System.out.println("x
=
"+answer);
}else{
System.out.println("该方程有两种解:");
Double
answer1
=
((-b)+Math.sqrt(temp))/2*a;
Double
answer2
=
((-b)-Math.sqrt(temp))/2*a;
System.out.println("x
=
"+answer1+"

x
=
"+answer2);
}
}
}

⑹ 用Java代码实现解一元二次方程

public class Equation {
private double a, b, c;

public Equation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}

public static void main(String[] args) throws Exception {
//j*(j-1) = 40;
//j*j - j - 40 =0
double[] results = new Equation(1, -1, -40).analyze();
for(int i = 0; i < results.length; i++){
System.out.println("j = " + results[i]);
}

}

public double[] analyze() throws Exception {
double delt = b * b - 4 * a * c;

if (delt < 0) {
throw new Exception("NO result");
} else if (delt == 0) {
double[] ary = { -b / (2 * a) };
return ary;
} else {
double[] ary = new double[2];
ary[0] = (-b + Math.sqrt(delt)) / (2 * a);
ary[1] = (-b - Math.sqrt(delt)) / (2 * a);

return ary;
}

}

}
----------testing
j = 6.84428877022476
j = -5.84428877022476

⑺ Java 如何编程实现一元二次方程的求解

//求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类
class OnceBasicQuadraticEquation //求解一元二次方程ax^2+bx+c的实根和复根的类,其中getRoot()方法求根和显示根
{
private double a; //方程的二次项系数
private double b; //方程的一次项系数
private static double c; //方程的常数项
//以上三个成员变量分别是方程的系数

OnceBasicQuadraticEquation() //无参构造方法
{
a = 0;
b = 0;
c = 0;
}

OnceBasicQuadraticEquation(double a,double b,double c) //有参构造方法
{
this.a = a;
this.b = b;
this.c = 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 double getDlt() //计算判别式Δ=b^2-4ac的值
{
double result = Math.pow(b,2) - 4 * a * c;
return result;
}

private double getRightRoot() //求解右侧较大实根的方法
{
double rightRoot = 0;
rightRoot = (-b + Math.sqrt(getDlt())) / (2 * a);
return rightRoot;
}

private double getLeftRoot() //求解左侧较小实根的方法
{
double leftRoot = 0;
leftRoot = (- b - Math.sqrt(getDlt())) / (2 * a);
return leftRoot;
}

public void getRoot() //求解并显示实根或复根的方法
{
if(a==0)
{
if(b==0)
{
if(c==0)
{
System.out.println("一元二次方程:" + getA() + "x^2+" //a、b、c全为零时,定义方程有无穷多解。
+ getB() + "x+"
+ getC() + "\t有无穷多解。");
}
else
{
//二次项和一次项系数为零,但常数项不为零,方程变为不等式,无解。
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t无解。");
}
}
else
{
//二次项系数为零,一次项系数不为零,方程是一次方程,有唯一解。
double result = 0;
result = -getC() / getB();
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有唯一解:" + result);
}
}
else //二次项系数不为零,方程有两个实根或复根。
{
if(getDlt()==0) //判别式Δ=b^2-4ac=0,方程有两个相等实根。
{
double result = 0;
result = -getB() / (2 * getA());
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有唯一解:" + result);
}
else if(getDlt()>0) //判别式Δ=b^2-4ac>0,方程有两个相异实根。
{
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有两个实根:" + getLeftRoot() + "和" + getRightRoot());
}
else //判别式Δ=b^2-4ac<0,方程有两个复根。
{
//double imaginaryNumber1 = 0;
double imaginaryNumber = 0;
double realNumber = 0;
imaginaryNumber = Math.sqrt(-getDlt()) / (2 * a);
realNumber = -getB() / (2 * a);
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有两个复根:"
+ realNumber + "±" + imaginaryNumber + "i");
}
}
}
}

public class Test
{
public static void main(String [] args)
{
OnceBasicQuadraticEquation e1 = new OnceBasicQuadraticEquation(4,13,3);
e1.getRoot();

}
}

⑻ 用JAVA写一个求解一元二次方程的类

import java.util.Scanner;

public class equation {
public static void main(String[] args){
System.out.println("输入一元二次系数a,b,c:");
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
double x1,x2;
int deta=b*b-4*a*c;
if(deta==0){
x1=x2=(-b)/(2*a);
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}else{
double t=Math.sqrt(Math.abs(deta))/(2*a);
if(deta>0){
x1=(-b)/(2*a)+t;
x2=(-b)/(2*a)-t;
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}else{
x1=(-b)/(2*a);
x2=(-b)/(2*a);
System.out.println("x1="+x1+"+"+t+"*i");
System.out.println("x2="+x2+"-"+t+"*i");
}
}
}
}

阅读全文

与java一元二次方程相关的资料

热点内容
阿里云服务器终端在哪里 浏览:144
app纸有什么用 浏览:219
cuteftp命令 浏览:502
最开始的编程语言是什么 浏览:757
at远程命令 浏览:490
云服务器哪家好点 浏览:211
android系统源码阅读 浏览:926
dumpjava分析工具 浏览:678
怎么下载cpu源码 浏览:154
代码加密怎么取消 浏览:888
编译原理代码在哪里运行 浏览:584
解密摄影pdf 浏览:72
算法编程中级题目 浏览:250
c语言编译器毕业设计 浏览:717
医保卡申请app哪个好 浏览:945
阿里云服务器上传源码 浏览:602
营销管理科特勒pdf 浏览:696
愿望清单app哪个好 浏览:461
安卓外放声音怎么解决 浏览:196
脉脉app干什么用的 浏览:362