解题思路:两个共轭复数根的实部为-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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论