#15688: Re:[C++] 測試是AC 結果給NA??


d10731612@gapps.fg.tp.edu.tw (DW)

學校 : 臺北市立第一女子高級中學
編號 : 86904
來源 : [140.122.136.100]
最後登入時間 :
2024-02-26 17:19:40
a006. 一元二次方程式 | From: [42.71.133.172] | 發表日期 : 2018-10-20 21:19

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,b,c,d,x1,x2;
while(cin >> a >> b >> c)

{
d=b*b-4*a*c ;
if (d<0)
{
cout << "No real root" << endl;
}
x1 =( -b + sqrt(d) ) /2*a;
x2 =( -b - sqrt(d) ) /2*a;
if (d>0)
{
cout << "Two different roots x1=" << x1 << " , x2="<< x2 << endl;
}

else if (d==0)
{
cout << "Two same roots x="<< x1 << endl;
}

}

return 0;
}

 
#15690: Re:Re:[C++] 測試是AC 結果給NA??


OwO310659 (OwO)

學校 : 新北市立板橋高級中學
編號 : 58647
來源 : [118.150.111.60]
最後登入時間 :
2024-04-25 01:16:40
a006. 一元二次方程式 | From: [106.105.27.148] | 發表日期 : 2018-10-20 21:38

一元二次的公式為 (-b±sqrt(d))/(2a)
你在計算的時候是寫 ( -b + sqrt(d) ) /2*a ,
由於 /運算子 和 *運算子 作為算術運算子的優先度是一樣的,
所以會依序由左至右進行運算,
故你的寫法並非 除以2a 而是 先除以2 再乘以a
加個括號就OK了~
( -b + sqrt(d) ) / (2*a)

以上希望有幫助到你~ OwO

 
ZeroJudge Forum