Java基础语法实战系统总结2(陆续上传中...)

利用Java API,查找到Math类,求一元二次方程?提示用Math类中的开方sqrt,求幂pow等等。SolveQuadratic.java
/** 求解二次方程 a*x*x+b*x+c=0
* b*b-4*a*c=0, 有两个相等实根
* b*b-4*a*c>0, 有两个相异实根
* b*b-4*a*c<0, 有两个共轭复根
*/
import javax.swing.*;
public class SolveQuadratic{
public static void main(String[] args){
if(args.length!=3){
System.out.println("Usage: java SolveQuadratic aCoef bCoef cCoef");
System.out.println("Example: java SolveQuadratic 1 2 1");
System.exit(-1);
}
double a;
double b;
double c;
a=Double.parseDouble(args[0]);
if(Math.abs(a)<Math.pow(10,-6)){ //认为a等于0
System.out.println("a=0, not a Quadratic");
System.exit(-1);
}
b=Double.parseDouble(args[1]);
c=Double.parseDouble(args[2]);
System.out.println("Quadratic is "+a+"*x*x+"+b+"*x+"+c+"=0");

double disc=b*b-4*a*c;

if(Math.abs(disc)<Math.pow(10,-6)){ //认为disc等于0
System.out.println("The Quadratic has two equal roots:"+(-b/(2*a)));
}else if(disc>Math.pow(10,-6)){ //disc大于0
double root1=(-b+Math.sqrt(disc))/(2*a);
double root2=(-b-Math.sqrt(disc))/(2*a);
System.out.println("The Quadratic has two distinct roots:"+root1+" "+root2);
}else{//disc小于0
double realPart=-b/(2*a);
double imagPart=Math.sqrt(-disc)/(2*a);
System.out.println("The Quadratic has complex roots:");
System.out.println(realPart+"+"+imagPart+"i");
System.out.println(realPart+"-"+imagPart+"i");
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值