題目連結
https://zerojudge.tw/ShowProblem?problemid=a006
解題思路
求一元二次方程式的根有多種方式,舉凡配方法、十字交乘等,而這裡採用的是公式解。若判別式 b2-4ac > 0 ,代表此方程式有兩相異實根 (-b±√b2-4ac)/2a ;若判別式 b2-4ac = 0 ,代表此方程式有兩相同實根 (-b+√(b2-4ac))/2a = (-b-√(b2-4ac))/2a ;若判別式 b2-4ac < 0 ,代表此方程式沒有實根。
注意事項
本題中使用了sqrt()函式表示根式寫法。由於sqrt()函式並非標準函式庫裡的函式,使用前須先引用 <math.h> 函式庫。
程式碼:C語言
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h> #include <math.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); int D = b*b-4*a*c; if(D < 0) printf("No real root\n"); else { int x1 = (-b+sqrt(D))/(2*a); int x2 = (-b-sqrt(D))/(2*a); if(D > 0) printf("Two different roots x1=%d , x2=%d", x1, x2); else if(D == 0) printf("Two same roots x=%d", x1); } return 0; }
|