[NOIP2001] 提高组 洛谷P1024 一元三次方程求解
生活随笔
收集整理的這篇文章主要介紹了
[NOIP2001] 提高组 洛谷P1024 一元三次方程求解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
題目描述
有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的系數(shù)(a,b,c,d 均為實數(shù)),并約定該方程存在三個不同實根(根的范圍在-100至100之間),且根與根之差的絕對值>=1。要求由小到大依次在同一行輸出這三個實根(根與根之間留有空格),并精確到小數(shù)點后2位。
提示:記方程f(x)=0,若存在2個數(shù)x1和x2,且x1<x2,f(x1)*f(x2)<0,則在(x1,x2)之間一定有一個根。
輸入輸出格式
輸入格式:
?
一行,4個實數(shù)A,B,C,D。
?
輸出格式:
?
一行,三個實根,并精確到小數(shù)點后2位。
?
輸入輸出樣例
輸入樣例#1:1 -5 -4 20 輸出樣例#1:
-2.00 2.00 5.00
?
其實正解是二分求值。
但是看看這個數(shù)據(jù)范圍……嗨呀!暴力掃吧!
1 /*by SilverN*/ 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 const double eps=1e-3; 9 double a,b,c,d; 10 int main(){ 11 double i,j; 12 cin>>a>>b>>c>>d; 13 for(i=-100;i<=100;i+=0.01){ 14 if( fabs(a*i*i*i+b*i*i+c*i+d)<=eps )printf("%.2f ",i); 15 } 16 return 0; 17 }?
轉(zhuǎn)載于:https://www.cnblogs.com/SilverNebula/p/5962562.html
總結(jié)
以上是生活随笔為你收集整理的[NOIP2001] 提高组 洛谷P1024 一元三次方程求解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10 微软输入法 设置 英文首选
- 下一篇: 迷你世界怎么刷皮肤