#2389: 為什麼第3點總是不過?


a6514239 (此bo非彼ball的*ying)

學校 : 國防大學
編號 : 7500
來源 : [140.129.98.187]
最後登入時間 :
2009-10-05 15:31:15
a006. 一元二次方程式 | From: [140.129.98.187] | 發表日期 : 2009-09-17 16:26

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

 
#2390: Re:為什麼第3點總是不過?


a6514239 (此bo非彼ball的*ying)

學校 : 國防大學
編號 : 7500
來源 : [140.129.98.187]
最後登入時間 :
2009-10-05 15:31:15
a006. 一元二次方程式 | From: [140.129.98.187] | 發表日期 : 2009-09-17 16:44

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

我已經找出問題點了,謝謝大家!
 
ZeroJudge Forum