2016-05-19 7 views
0
x1 = -b + (b **2 - 4*a*c) ** 0.5 
x2 = x1/(2 * a) 

私のプログラムはユーザ入力を受け取り、2次関数を解きます。しかし、それは負の数を処理することができませんし、私は部分的な電力エラーを取得します。自分のプログラムが負の数を受け入れて正しい答えを出せるようにする方法を知りたい。負数を分数にすることはできません

私は、次の試してみましたが、それは私に出力を与えるものではありません、ただ空白行:

x1 = -b + (b **2 - 4*a*c+0j) ** 0.5 
x2 = x1/(2 * a) 
+1

1/2番目負の数のべき乗(平方根)は複素数です。複素数の扱いについては、['cmath' module](https://docs.python.org/2/library/cmath.html)を参照してください。 – Selcuk

+0

また、負の基数と分数累乗はあいまいかもしれないことに注意してください。 – DeepSpace

答えて

1

あなたは、この目的の利用cmathために複素数で動作します:

import cmath 
x1 = -b + cmath.sqrt(b **2 - 4*a*c) 
x2 = x1/(2 * a) 
+0

私はこれを試しましたが、まだ空白の出力を与えています。 '( C =入力してください: B =入力( 'してください入力B'): – Grim

+0

@Grimは、あなたはそれを –

+0

輸入SYS 輸入数学 輸入cmath =入力('を入力して下さい')をに関する完全なコードを共有できます(b * 2-4 * a * c) x1 = -b + cmath.sqrt(b ** 2-4 * a * c) x2 = x1 /(2 * a) x3 = -b + cmath.sqrt(b * * 2 - 4 * a * c) x4 = x3 /(2 * a) print(x2) print(x4) – Grim

関連する問題