題目描述
輸入資料
輸入該方程中各項的係數 (a , b , c , d 均為實數),
輸出資料
由小到大依次在同一行輸出這三個實根(根與根之間留有空格),並精確到小數點後 2 位。
樣例輸入
1-5
-420
樣例輸出-
2.00
2.00
5.00
程式分析1
class
solveequation
: rootnum =
0 rootlist =
deff
(self, x)
:return a *
pow(x,3)
+ b *
(x **2)
+ c * x + d
defbisearch
(self, ld, rd)
:# 呼叫這個函式說明(ld,rd)區間內一定有解
# 有兩個遞迴出口
ifabs
(ld - rd)
<
0.001
:# 若解沒有落在端點上,而是再(ld,rd)之間,在滿足精度的條件下,就可以用ld或rd當作答案
self.rootnum +=
1# print("%.2f" % ld)
format
(ld,
".2f"))
return
mid =
(ld + rd)/2
if self.f(mid)==0
:# 解落在了端點上
self.rootnum +=
1# print("%.2f" % mid)
format
(mid,
".2f"))
return
if self.f(ld)
* self.f(mid)
<0:
self.bisearch(ld, mid)
else
: self.bisearch(mid, rd)
a, b, c, d =
map(
float
,input()
.split())
se = solveequation(
)for i in
range(-
100,
100)
: ld, rd = i, i +
1if se.f(ld)==0
:# 判斷左端點是解,通過for迴圈可以依次遍歷所有端點
# print("%.2f" % ld)
format
(ld,
".2f"))
se.rootnum +=
1continue
if se.f(ld)
* se.f(rd)
<0:
# <0表示區間(ld,rd)內一定存在乙個解,但是沒有考慮到端點可能是解,需要額外判斷
se.bisearch(ld, rd)
if se.rootnum ==3:
break
for i in
range(2
):print
(se.rootlist[i]
, end=
' ')
print
(se.rootlist[2]
)
↩︎ Broken Flowers 破碎之花
破碎之花 電影劇照 16張 已是中年的唐喬納森 比爾莫瑞 至今仍忍受著單身的孤獨生活,雖然交過的女友不少,但卻沒有乙個能與他堅持到步入婚姻殿堂的地步。可謂倒霉至極!如今,不幸的他剛又被上乙個女朋友 朱 莉 甩掉,沒辦法,喬納森只好重又回到自己的世界當中忍受孤獨,並決心將一切生活重心都放在事業上面。然...
雙響炮之花感
終於看完了雙響炮.一直徘徊在感情的漩渦,剪不斷,理還亂.至此忽然變得清晰了.他愛不愛你,你愛不愛他?看看自己在對方心目中的地位就知道了.放空.也許這也是愛的真諦吧.真正的愛情,至死不渝的愛情應該是怎樣的呢?象英雄和呂霞那樣心心相印,為對方可以捨棄自己的一切的愛在現實中也有麼?還是說只有生死才是它的試...
MATLAB之方程式求根
1.syms x 標明變數x是乙個符號變數 2.solve y,x 求y 0時,x的取值,預設的自變數為x 1.解單個方程 係數已知 syms s y s sin s s solve y,s ans 0pi 2 y cos s 2 sin s 2 solve y ans pi 4 2.解聯立方程 係...