有形如: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...