藍橋 ALGO 23 一元三次方程求解

2021-08-02 00:26:06 字數 1116 閱讀 5235

acm模版

一開始這個題想多了,想著可能需要求導求極點拐點之類的東西,後來直接暴力過了一發(** one),然而這個方法不是特別滿意,於是仔細分析了發現,題目給了很強的兩個條件,保證存在三個不同的實根,且根於根直接差大於等於 1,那麼我們知道一元三次方程組的解至多只有三個,所以一定是不存在峰值剛好為 0 的情況,這樣直接列舉所有長度為 1 的區間,進行判斷是否存在根,存在時二分即可(** two)。

one:

#include 

#include

using

namespace

std;

const

int maxn = 100;

const

double esp = 1e-5;

double a, b, c, d;

double calculate(double x)

int main(int argc, const

char * argv)

else

cnt--;}}

return

0;}

two:

#include 

#include

#include

using

namespace

std;

const

double esp = 1e-5;

const

int maxn = 100;

double a, b, c, d;

double cal(double x)

int main()

else

if (cnt == 1)

else

cnt--;

}else

else

}if (cnt > 1)

else

if (cnt == 1)

else

cnt--;}}

}return

0;}

一元三次方程重根判別式 如何求一元三次方程

我們知道,一元二次方程 一元三次方程 1 為了解最初的方程,我們可以先考慮將方程變形成 2 這個形式可以進一步化簡。回顧一元二次方程的求根公式,我們採用的是配方法,將其變成和的平方的形式然後開方即可得到求根公式,這裡最高次是3次,所以我們可以考慮配立方。因為 和1中的式子比較發現,我們可以把 這項併...

一元三次方程求解

有形如 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 輸出格式 由小到大依次在同一行輸出這...