2011年4月2日 星期六

a006: 一元二次方程式

內容 :
求一元二次方程式 ax2+bx+c=0 的根

輸入說明 :
輸入三個整數 a, b, c

輸出說明 :
Two different roots x1=?? , x2=??
Two same roots x=??
No real root
PS: 答案均為整數,若有兩個根則大者在前

範例輸入 :
1 3 -10
1 0 0
1 1 1

範例輸出 :
Two different roots x1=2 , x2=-5
Two same roots x=0
No real root

程式碼:
#include <stdio.h>
#include <math.h>
int main()
{
    int a,b,c,temp;
    
    while(scanf(" %d %d %d",&a,&b,&c)==3)
    {
        temp = b*b - 4*a*c;
        if(temp>0)
        {
            temp = sqrt(temp);
            a=a<<1;
            printf("Two different roots x1=%d , x2=%d\n",(-b+temp)/a,(-b-temp)/a);
        }
        else if(temp==0)
            printf("Two same roots x=%d\n",(-b)/(2*a));
        else
            printf("No real root\n");
    }   
    return 0;
}

http://zerojudge.tw/ShowProblem?problemid=a006

沒有留言:

張貼留言