一元三次方程求解

2021-10-19 07:31:15 字數 1064 閱讀 3945

有形如:ax3+bx2+cx+d=0 這樣的乙個一元三次方程。

給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根之差的絕對值》=1。要求由小到大依次在同一行輸出這三個實根(根與根之間留有空格),並精確到小數點後2位。

一行,包含四個實數a,b,c,d,相鄰兩個數之間用單個空格隔開。

一行,包含三個實數,為該方程的三個實根,按從小到大順序排列,相鄰兩個數之間用單個空格隔開,精確到小數點後2位。

列舉首先看題,這道題,說的是從-100一直到100,每次+0.01,所以列舉在1s中是穩穩的可以算完~

二分首先我們可以知道這道題是乙個單調的數列,也可以說是有序數列,所以,我們就可以用二分啦~,如果用二分就可以運算10^-9 到

10^9,直接少一半啊~

#include .h>

int main()

}return0;

}

就是這樣

然後是用二分

#include .h>

double a,b,c,d;

inline double m

(double x)

double gr

(double l,double r,bool f)

return mid;

}int main()

else

}

就醬~

這裡有乙個小坑:在輸出的時候我們需要有乙個空格,所以在輸出的時候就要%f後加乙個空格,還有就是,這裡的所有字元都是double型的!

記方程f(x)=0,若存在2個數x1和x2,且x1 < x2,f(x1)*f(x2) < 0,則在(x1,x2)之間一定有乙個根。

這道題主要就是考察大家的分治的想法,如果可以想到這個,我們就可以來寫這個啦~當然還有的一種思路就是列舉,那是因為可以計算出資料的時間複雜度,在1s內可以完成,要是不行,列舉也就廢了。二分的判斷,看題目我們其實可以看出它是乙個有序數列,所以我們在想到列舉之後,我們就可以想到二分了。

喜歡我的,別忘關注啊~ヾ(◍°∇°◍)ノ゙

一元三次方程求解

有形如 ax 3 bx 2 cx d 0這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這三個實根 根與根之間留有空格 並精確到小數點後2位。輸入有多行測試資料...

一元三次方程求解

問題描述 有形如 ax 3 bx 2 cx d 0 這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d 均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求三個實根。輸入格式 四個實數 a,b,c,d 輸出格式 由小到大依次在同一行輸出這...

一元三次方程求解

有形如 ax3 bx2 cx d 0 這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d 均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這三個實根 根與根之間留有空格 並精確到小數點後2位。輸入格式 一行,4...