合計時間制限:
- 1000ミリ秒
- メモリ制限:
- 65536kB
- 説明
-
式X1を使用して=(-b + SQRT(B * B-4 * C))/(2 *)、X2 =(-b - SQRT(B * B-4 * C))/(2 * a)は二次方程式AX見つける2ゼロに等しくない、請求、根の+ BX + C = 0。
- エントリー
- 入力ライン、3つの浮動小数点数(それらの間の空間によって分離)、B、C、それぞれ方程式AX含む 2 係数の+ BX + C = 0。
- 輸出
-
方程式の解を示す出力Aライン。
もしB 2 = A * C * 4、二つの実根が等しく、出力形態:X1 = X2 = ....
B場合 2 。X2 = ...; X 1 = ...:> A * C * 4、二つの実根は、出力形式等しくない 、 X1> X2を。
B場合 2 。虚数部iが、すなわち、係数の虚数部がX1とX2より大きい虚数部に等しい、 - X2 =実数部; X1 =虚数部の実数部が+ I:<C * A * 4,2つの仮想根、出力があります係数は、実部が0を省略することができないです。レアル= -b /(2 *) 、虚部= SQRT(4 * * CB * B)/(2 * a)は
すべての実数部は5桁までの正確な必要があり、数字、記号の間にスペースはありません。 - サンプル入力
-
入力サンプル1 1.0 2.0 8.0 サンプル入力2 1 1 0
- サンプル出力
-
出力例1つの。 X1 = -1.00000 + 2.64575i; X2 = -1.00000-2.64575i サンプル出力2 X1 = 0.00000 + 1.00000i; X2 = 0.00000-1.00000i
1の#include <iostreamの> 2の#include <math.h>の 3の#include <cmath> 4 使用して 名前空間をSTD。 5 6 INT メイン(){ 7 ダブル A = 1.0、B = 2.0、C = 8.0 。 8 ダブル X1 = 0.0、X2 = 0.0 。 9つの ダブル EPS = 0.000001 。 10 // cinを>> B >> C。 11 のscanf(" %LF%LF%LF "、&、&B、&C)。 12 ダブルTMP = B * B - 4 * C。 13 であれば(TMP <EPS && TMP> - EPS){ 14 のprintf(" X1 = X2 =%5F。"、( - B)/(2 *)+ EPS)。 15 } そう であれば(TMP> EPS){ 16 、X1 =( - B + SQRT(TMP))/(2 * )。 17 X2 =( - B-SQRT(TMP))/(2 *)+ EPS。 18 であれば((X1-X2)> EPS){ 19 のprintf(" X1 =%5F; X2 =%5F "、X1 + EPS、X2 + EPS)。 20 } 他{ 21 のprintf(" X1 =%5F; X2 =%5F "、X2 + EPS、X1 + EPS)。 22 } 23 } 他{ 24 のprintf(" X1 =%5F +%5fi;。。。。X2 =%5F - %5fi " 、 25 (-b)/(2 *)+ EPS、SQRT(-tmp)/ (2 *)+ EPS、( - B)/(2 *)+ EPS、SQRT(-tmp)/(2 *)+ EPS)。 26 27 } 28 29 30 31 32 戻り 0 ; 33 }