總time limit:
1000ms
memory limit:
65536kb
description
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等於0。
input
輸入一行,包含三個浮點數a, b, c(它們之間以乙個空格分開),分別表示方程ax
2 + bx + c =0的係數。
output
輸出一行,表示方程的解。若b2
= 4 * a * c,則兩個實根相等,則輸出形式為:x1=x2=...。若b2
> 4 * a * c,則兩個實根不等,則輸出形式為:x1=...;x2 = ...,其中x1>x2。若b2
< 4 * a * c,則有兩個虛根,則輸出:x1=實部+虛部i; x2=實部-虛部i,即x1的虛部係數大於等於x2的虛部係數,實部為0時不可省略。實部 = -b / (2*a), 虛部 = sqrt(4*a*c-b*b) / (2*a)
所有實數部分要求精確到小數點後5位,數字、符號之間沒有空格。
/*
如果有數
平方 是負數的話,那個數就是虛數了;所有的虛數都是複數。「虛數」這個名詞是17世紀著名數學家笛卡爾創制,因為當時的觀念認為這是真實不存在的數字。後來發現虛數可對應平面上的縱軸,與對應平面 上橫軸的實數同樣真實。虛
數軸 和
實數軸 構成的平面稱
複數平面
,復平面
上每一點對應著乙個
複數 。
在數學中,
虛數 就是形如a+b*i的數,其中a,b是實數,且b≠0,i² = - 1。虛數這個名詞是17世紀著名數學家
笛卡爾 創立,因為當時的觀念認為這是真實不存在的數字。後來發現虛數a+b*i的實部a可對應平面上的橫軸虛部b與對應平面上的
縱軸 ,這樣虛數a+b*i可與平面內的點(a,b)對應。
*/
sample input
樣例輸入1
1.0 2.0 8.0
樣例輸入2
1 0 1
sample output
樣例輸出1x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
樣例輸出2
x1=0.00000+1.00000i;x2=0.00000-1.00000i
//題目其實很簡單,但是就是有點難得打,可是這個程式很有用,以後還可以直接得到解的大約值,所以我把它存在部落格裡_(:з」∠)_求一元二次方程的根
#include
#include
#include
#include
using
namespace std;
intmain
()if
(b*b>
4*a*c)
if(b*b<
4*a*c)
else
printf
("%.5lf"
,abs
(-1.0
*b/(
2*a)));
cout<<
"+";
printf
("%.5lf"
,abs
(sqrt(4
*a*c-b*b)*
1.0/(
2*a)));
cout<<
"i;"
; cout<<
"x2=";if
(-1.0
*b/(
2*a)<0)
else
printf
("%.5lf"
,abs
(-1.0
*b/(
2*a)));
cout<<
"-";
printf
("%.5lf"
,abs
(sqrt(4
*a*c-b*b)*
1.0/(
2*a)));
cout<<
"i"<}return0;
}
1 4 20 求一元二次方程的根
描述 利用公式 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。輸入輸入一行,包含三個浮點數a,b,c 它們之間以乙個空格分開 分別表示方程ax2 bx c 0的係數。輸出輸出一行,表示方程的解...
求一元二次方程的根
求一元二次方程的根 總時間限制 1000ms 記憶體限制 65536kb 描述 利用公式x1 b sqrt b b 4 a c 2 a x2 b sqrt b b 4 a c 2 a 求一元二次方程ax2 bx c 0的根,其中a不等於0。輸入 輸入一行,包含三個浮點數a,b,c 它們之間以乙個空格...
求一元二次方程的根
描述 利用公式x1 b sqrt bb 4ac 2a x2 b sqrt bb 4ac 2a 求一元二次方程ax2 bx c 0的根,其中a不等於0。輸入輸入一行,包含三個浮點數a,b,c 它們之間以乙個空格分開 分別表示方程ax2 bx c 0的係數。輸出輸出一行,表示方程的解。若b2 4 a c...