日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PTA 7 - 3 h0053.求一元二次方程的根

發布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PTA 7 - 3 h0053.求一元二次方程的根 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

利用公式 x1 = (-b + sqrt(b* b-4* a* c))/(2* a), x2 = (-b - sqrt(b* b-4* a* c))/(2* a) 求一元二次方程 ax^2 + bx + c =0的根,其中a不等于0。

輸入格式

第一行是待解方程的數目 n。
其余 n 行每行含三個浮點數 a, b, c(它們之間用空格隔開),分別表示方程 ax^2 + bx + c =0 的系數。

輸出格式

輸出共有 n 行,每行是一個方程的根:
若是兩個實根,則輸出:x1=…;x2 = …
若兩個實根相等,則輸出:x1=x2=…
若是兩個虛根,則輸出:x1=實部+虛部i; x2=實部-虛部i

所有實數部分要求精確到小數點后5位,數字、符號之間沒有空格。
x1 和 x2 的順序:x1的實部 > Re的實部 || (x1的實部 == x2的實部 && x1的虛部 >= x2的虛部)

輸入樣例

3 1.0 3.0 1.0 2.0 -4.0 2.0 1.0 2.0 8.0

輸出樣例

x1=-0.38197;x2=-2.61803 x1=x2=1.00000 x1=-1.00000+2.64575i;x2=-1.00000-2.64575i

思路

按照題意所述一步步計算即可,先按照求根公式求出 Δ = b2 - 4 * a * c,再定義一個 x = (-b) / (2 * a).
唯一需要注意的是,這里需要特判一下,當 x = 0 時,仍然輸出 0 , 不然可能會輸出 -0.

代碼如下

#include <iostream> #include <cstdio> #include <cmath> using namespace std;int main() {int n;cin >> n;while (n--){double a, b, c;cin >> a >> b >> c;double f = b * b - 4 * a * c;double x = (-b) / (2 * a);//特判一手if (x == 0) x = 0;if (f > 0) //Δ > 0,有兩個根{double x1 = (-b + sqrt(f)) / (2*a), x2 = (-b - sqrt(f)) / (2*a);printf("x1=%.5f;x2=%.5f\n", x1, x2);}else if (f == 0) //Δ = 0,有單根{printf("x1=x2=%.5f\n", x);}else if (f < 0) //Δ < 0,有兩個復數根,其中兩個虛部一定相等{f = - f;double y = sqrt(f) / (2 * a);printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi\n", x, y, x, y);}}return 0; }

總結

以上是生活随笔為你收集整理的PTA 7 - 3 h0053.求一元二次方程的根的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。