在此程序中,您將學(xué)習(xí)查找二次方程式的所有根,并使用Java中的format()打印它們。
二次方程的標(biāo)準(zhǔn)形式為:
ax2 + bx + c = 0,其中 a,b和c是實(shí)數(shù), a ≠ 0
該b2-4ac稱為二次方程的行列式。行列式說明了根的性質(zhì)。
如果行列式大于0,則根是實(shí)數(shù)且不同。
如果行列式等于0,則根是實(shí)數(shù)且相等。
如果行列式小于0,則根是復(fù)數(shù)且不同的。
public class Quadratic { public static void main(String[] args) { double a = 2.3, b = 4, c = 5.6; double root1, root2; double determinant = b * b - 4 * a * c; //實(shí)數(shù)不同根的條件 if(determinant > 0) { root1 = (-b + Math.sqrt(determinant)) / (2 * a); root2 = (-b - Math.sqrt(determinant)) / (2 * a); System.out.format("root1 = %.2f and root2 = %.2f", root1 , root2); } //實(shí)等根的條件 else if(determinant == 0) { root1 = root2 = -b / (2 * a); System.out.format("root1 = root2 = %.2f;", root1); } //如果根不是實(shí)數(shù) else { double realPart = -b / (2 *a); double imaginaryPart = Math.sqrt(-determinant) / (2 * a); System.out.format("root1 = %.2f+%.2fi 和 root2 = %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart); } } }
運(yùn)行該程序時,輸出為:
root1 = -0.87+1.30i 和 root2 = -0.87-1.30i
在上述程序中,所述系數(shù)a,b和c分別被設(shè)定為2.3,4和5.6。然后,將determinant計算為b2 - 4ac。
根據(jù)行列式的值,按上式計算根。注意,我們已經(jīng)使用庫函數(shù)Math.sqrt()來計算數(shù)字的平方根。
使用Java中的format()函數(shù)將計算出的根(實(shí)數(shù)根或復(fù)數(shù)根)打印在屏幕上。format()函數(shù)也可以替換為printf():
System.out.printf("root1 = root2 = %.2f;", root1);