import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a,b,c,ans1,ans2;
double x1,x2,bk;
while(input.hasNext()) {
a=input.nextInt();
b=input.nextInt();
c=input.nextInt();
bk=Math.pow(b*b-4*a*c,0.5);
x1=(-b+bk)/(2*a);
ans1=(int)x1;
x2=(-b-bk)/(2*a);
ans2=(int)x2;
if(ans1==ans2){
if(ans1==-0){
System.out.println("Two same roots"+" x="+0);
}else{
System.out.println("Two same roots"+" x="+ans1);
}
}else if(ans1>ans2){
System.out.println("Two different roots"+" x1="+ans1+" , x2="+ans2);
}else if(x1<x2){
System.out.println("Two different roots"+" x2="+ans2+" , x1="+ans1);
}else{
System.out.println("No real root ");
}
}
}
}
這是我的程式碼,不懂執行時為什麼第3點總是不過,可以幫我看一下嗎?
*** 第 3 點 (20%):WA
與正確輸出不相符(line:1)
您的答案為: Two same roots x= ...略
正確答案為: No real root
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a,b,c,ans1,ans2;
double x1,x2,bk;
while(input.hasNext()) {
a=input.nextInt();
b=input.nextInt();
c=input.nextInt();
bk=Math.pow(b*b-4*a*c,0.5);
x1=(-b+bk)/(2*a);
ans1=(int)x1;
x2=(-b-bk)/(2*a);
ans2=(int)x2;
if(ans1==ans2){
if(ans1==-0){
System.out.println("Two same roots"+" x="+0);
}else{
System.out.println("Two same roots"+" x="+ans1);
}
}else if(ans1>ans2){
System.out.println("Two different roots"+" x1="+ans1+" , x2="+ans2);
}else if(x1 System.out.println("Two different roots"+" x2="+ans2+" , x1="+ans1);
}else{
System.out.println("No real root ");
}
}
}
}
這是我的程式碼,不懂執行時為什麼第3點總是不過,可以幫我看一下嗎?
*** 第 3 點 (20%):WA
與正確輸出不相符(line:1)
您的答案為: Two same roots x= ...略
正確答案為: No real root