def roots4(a,b,c,d):
d = b * b - 4 * a * c
if a != 0 and d == 0:
roots4(a,b,c,d)
x = -b/ (2*a)
if a != 0 and d > 0:
roots4(a,b,c,d)
x1 = (-b + math.sqrt(d))/2.0/a
x2 = (-b - math.sqrt(d))/2.0/a
if a != 0 and d < 0:
roots4(a,b,c,d)
xre = (-b)/(2*a)
xim = (math.sqrt(d))/ (2*a)
print x1 = xre + ixim
strx1 = "x2 = %6.2f + i %6.2f" %(xre, xim)
print strx1
これはプロジェクトのコードの一部です。私がしようとしているのはroots4(a,b,c,d)
です。例えば、a != 0 and d == 0
の場合、roots4(a,b,c,d)
は、式x = -b/ (2*a)
を解くことによってx
を見つけることに行きます。それで...私は何が間違っているのか分かりません。任意のヒント?if文を使用して関数を定義する
なぜ再帰呼び出し罰金になりますとき
d < 0
場合のみで印刷したい場合は?ソリューションを印刷するか、それを返すかは、どのような効果がありますか? – LutzLパラメータとしてdを渡す必要はありません – zezollo
'a == 0'なら何をしますか?あなたは式 "x = -b /(2 * a)"を解くことで何を意味するのですか?(解決する方程式はまだ本当ですか?) – zezollo