解题思路:两个共轭复数根的实部为-b/2a 虚部为+(-)(sqrt(b*b-4ac))/2a
注意事项:写2a的时候一定写成(2*a)记得加括号!!!有问题评论区q我~
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if(b*b-4*a*c>0) {
greater(a,b,c);
}else if(b*b-4*a*c==0) {
equal(a,b,c);
}else {
less(a,b,c);
}
}
//Δ > 0 有两个不相等的实数根
public static void greater(int i, int j, int k) {
double x1 = (-j+Math.sqrt(j*j-4*i*k))/(2*i);
double x2 = (-j-Math.sqrt(j*j-4*i*k))/(2*i);
String str1 = String.format("%.3f", x1);//保留三位小数
String str2 = String.format("%.3f", x2);
System.out.print("x1="+str1+" x2="+str2);
}
//Δ = 0 有两个相等的实数根
public static void equal(int i, int j, int k) {
double x1 = (-j+Math.sqrt(j*j-4*i*k))/(2*i);//相等写一个就行
double x2 = (-j-Math.sqrt(j*j-4*i*k))/(2*i);
String str1 = String.format("%.3f", x1);
String str2 = String.format("%.3f", x2);
System.out.print("x1="+str1+" x2="+str2);
}
//Δ < 0 有两个共轭复数根
public static void less(int i, int j, int k) {
double sb = (double)-j/(2*i);//实部
double x1 = Math.sqrt(-(j*j-4*i*k))/(2*i);//虚部除了正负号也相等
double x2 = Math.sqrt(-(j*j-4*i*k))/(2*i);//虚部
String str1 = String.format("%.3f", x1);
String str2 = String.format("%.3f", x2);
String strsb = String.format("%.3f", sb);
System.out.print("x1="+strsb+"+"+str1+"i"+" x2="+strsb+"-"+str2+"i");
}
}
0.0分
1 人评分