導航:首頁 > 編程語言 > 一元二次方程java

一元二次方程java

發布時間:2022-10-24 22:18:41

1. 用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

2. 用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);
}
}
}

3. 用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");
}
}
}
}

4. 用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);
}
}
}

5. 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();

}
}

6. 編寫一個java程序,從鍵盤輸入一元二次方程的3個系數a,b和c,輸出這個方程的解

import javax.swing.JOptionPane;
public class quadratic_Equation
{
public static void main(String[ ] args)
{
double a, b, c, D, x1, x2 ;
String string_a, string_b, string_c, result;
String answer=" ";
string_a = JOptionPane. showInputDialog("輸入方程中的二次項系數");
a = Double.parseDouble(string_a);
string_b = JOptionPane. showInputDialog("輸入方程中的一次項系數");
b = Double.parseDouble(string_b);
string_c = JOptionPane. showInputDialog("輸入方程的常數項");
c = Double.parseDouble(string_c);
D = b*b-4*a*c; // 計算根的判別式
if( D > 0 ){ // 有二個不相等的實數解
x1=(- b+Math.sqrt(D))/( 2*a );
x2=(- b-Math.sqrt(D))/( 2*a );
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +" +c+" =0的解為:x1="+x1+", x2="+x2,"解方程", JOptionPane.INFORMATION_MESSAGE);
}
if( D == 0 ){ // 有二個相等的實數解
x1 = x2 = -b / ( 2*a );
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +"+c+" =0的解為:x1=x2="+x1, "解方程", JOptionPane.INFORMATION_MESSAGE);
}
if( D < 0 ){ // 無實數解
double r = -b / (2 * a);
double i = Math.sqrt(4 * a * c - b * b) / (2 * a);
answer = "X1= " + r + "+ " + i + "i X2= " + r + "- " + i + "i ";
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +" +c+" =0的復數解為:"+answer ,"解方程", JOptionPane.INFORMATION_MESSAGE);
}
}
}

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

}

8. java編寫程序求一元二次方程的根

import java.math.*;
public class demo{
/*
*
定義構造函數,寫入A,B,C的值.
*/
private int a,b,c;
private Vector vector;

public demo(int a,int b,int c){
this.a = a;
this.b = b;
this.c = c;
}
public Vector test(){

if(b*b<4*a*c){

System.out.println("無跟");

vector.add("空");
}
else if(b*b=4*a*c){

int i = (-b-cbrt(b^2-4*a*c))/2/a

System.out.println("只有一個根"+i);

vector.add(i);
}
else if(b*b>4*a*c){

double x1=(-b-cbrt(b^2-4*a*c))/2/a

double x2=(-b+cbrt(b^2-4*a*c))/2/a

vector.add(x1);

vector.add(x2);
}
}

}
應該就是這個樣子,我印象中寫的,沒有調試,你按照這個思路去改改

9. 用Java語言編寫求解一元二次方程的解,方程系數從鍵盤輸入若a為零輸出

1)簡介
一元二次方程 ax2+bx+c=0 的a、b、c三個參數由用戶自行定義,通過該程序輸出該一元二次方程的根。
對於該程序需要在「應聲蟲」的基礎上進行參數的自定義,在定義完成後需要通過求根公式實現結果的輸出,其中Math.sqrt()為對括弧的內容進行開平方根。
2)任務代碼
關於該程序的代碼如下:

importjava.util.Scanner;//導入java.util包下的Scanner類
publicclassTest2{//類名
publicstaticvoidmain(String[]args){//程序主入口函數,帶命令行參數
System.out.print("求ax^2+bx+c=0的根"+" ");//輸出標題
Scannerin=newScanner(System.in);//創建scanner,控制台會一直等待輸入,直到敲回車結束
System.out.print("請輸入a的值:");//輸出「提示」
inta=in.nextInt();//用戶可自行定義a的值
System.out.print("請輸入b的值:");//輸出「提示」
intb=in.nextInt();//用戶可自行定義b的值
System.out.print("請輸入c的值:");//輸出「提示」
intc=in.nextInt();//用戶可自行定義c的值
doublex1=((-b+Math.sqrt(b*b-4*a*c))/(2*a));//運用求根公式,並且Math.sqrt()為開平方根
doublex2=((-b-Math.sqrt(b*b-4*a*c))/(2*a));//運用求根公式,並且Math.sqrt()為開平方根
System.out.print("x1="+x1+" "+"x2="+x2);//輸出兩個根的結果
}
}

3)運行結果
使用LICEcap進行動圖的製作,運行結果動圖如下:


10. 如何用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);

}

}

}

這是我的運行結果

(10)一元二次方程java擴展閱讀:

利用java編程解決數學上的解方程題,我們需要把方程求解的思路寫出來,然後對應到每一步具體的求解步驟上。就比如解一元二次方程,需要我們把解方程的求根公式,判斷式寫出,最後用代碼表示出來就好了。

需要注意的是,java中有特定的包和數學函數去求解數學問題,比如求根號可以用Math.sqrt()函數,求絕對值用Math.abs()函數


閱讀全文

與一元二次方程java相關的資料

熱點內容
加強數字貨幣國際信息編譯能力 瀏覽:580
購買的app會員怎麼退安卓手機 瀏覽:889
程序員的種類及名稱 瀏覽:290
美國程序員薪資 瀏覽:12
黑石通匯證券伺服器什麼時候到期 瀏覽:391
東方財富app里我的關注怎麼看 瀏覽:747
bm3d單反級降噪演算法 瀏覽:457
華為安卓機激活時間怎麼查詢 瀏覽:850
如何用優盤重裝伺服器系統 瀏覽:317
日本結婚三代演算法 瀏覽:920
皓強工具解壓步驟 瀏覽:690
部隊抗洪搶險命令範文 瀏覽:888
歐姆龍plc編程軟體使用教程 瀏覽:594
ai文件pdf 瀏覽:912
騰訊雲伺服器掛載混合雲 瀏覽:758
智能小車用什麼單片機 瀏覽:463
java怎麼給窗口關閉 瀏覽:940
列舉51單片機的定址方式 瀏覽:706
剪輯app怎麼寫長篇文字 瀏覽:400
app專屬流量過月租怎麼不更新 瀏覽:656