Franics


私信TA

用户名:dotcpp0731525

访问量:332

签 名:

等  级
排  名 10851
经  验 1062
参赛次数 0
文章发表 5
年  龄 20
在职情况 学生
学  校 中北大学
专  业

  自我简介:

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

  评论区

  • «
  • »