解题思路:两个共轭复数根的实部为-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 人评分
数列 (C++代码)浏览:707 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:694 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1178 |
简单的a+b (C语言代码)浏览:564 |
【出圈】 (C语言代码)浏览:824 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:646 |
用筛法求之N内的素数。 (C++代码)浏览:754 |
1052题解(链表操作)浏览:782 |