2016年1月13日 星期三

a006: 一元二次方程式

內容 :
求一元二次方程式 ax2+bx+c=0 的根
輸入說明 : 
輸入三個整數 a, b, c
輸出說明 : 
Two different roots x1=?? , x2=??
Two same roots x=??
No real root
PS: 答案均為整數,若有兩個根則大者在前
範例輸入 : help
1 3 -10
1 0 0
1 1 1
範例輸出:
Two different roots x1=2 , x2=-5
Two same roots x=0
No real root
提示 : 
標籤:

import java.util.*;
public class a006 {                
public static void main(String[] args) {
int a,b,c;
double answer_1,answer_2;
int test;
Scanner sc=new Scanner(System.in);
  while(sc.hasNext()){
 a=sc.nextInt();
 b=sc.nextInt();
 c=sc.nextInt();
 answer_1=((b*-1)+Math.sqrt(b*b-4*a*c))/(2*a);
 answer_2=((b*-1)-Math.sqrt(b*b-4*a*c))/(2*a);
       test=b*b-4*a*c;  //檢查無整數答案用
      if(test>=0){
if(answer_1!=answer_2){
if(answer_1>answer_2)
System.out.println("Two different roots x1="+(int)answer_1+" , x2="(int)answer_2);
else
System.out.println("Two different roots x1="+(int)answer_2+" , x2="+ (int)answer_1);
}
else 
System.out.println("Two same roots x="+(int)answer_1);
 }
 else{
System.out.println("No real root");
     }
     }
}
}

1 則留言: