[NOIP 2001]組洛谷P 1024一元三次方程式の解を高める
2918 ワード
タイトルの説明
有形は、ax 3+bx 2+cx+d=0のような一元三次方程式である.この方程式の各係数(a,b,c,dはいずれも実数)を与え、この方程式には3つの異なる実根(根の範囲は-100から100の間)が存在し、根と根の差の絶対値>=1が規定されている.この3つの実ルート(ルートとルートの間にスペースが残っている)を小さいから大きいまで順次同じ行に出力し、小数点以下2桁まで正確にする必要があります.
ヒント:方程式f(x)=0を記し、2つの数x 1とx 2が存在し、x 1
にゅうしゅつりょくけいしき
入力形式:
1行、4個の実数A,B,C,D.
出力フォーマット:
1行、3つの実根を小数点以下2桁に正確にします.
入出力サンプル
サンプル#1を入力:
1 -5 -4 20
出力サンプル#1:
-2.00 2.00 5.00
実は正解は二分求値です.
でもこのデータ範囲を見てみると...ハイ!暴力を払おう!
1 /*by SilverN*/
2 #include
3 #include
4 #include
5 #include
6 #include
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 }
転載先:https://www.cnblogs.com/SilverNebula/p/5962562.html