解题思路:两个共轭复数根的实部为-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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复