題目ID:15713? 必做題? 100分
時間限制: 1000ms
空間限制: 65536kB
題目描述
有函數:f(x)?=
已知f(1.5) > 0,f(2.4) < 0 且方程 f(x) = 0 在區間 [1.5,2.4] 有且只有一個根,請用二分法求出該根。
輸入格式
(無)
輸出格式
該方程在區間[1.5,2.4]中的根。要求四舍五入到小數點后6位。
樣例
其實這題答案唯一,只需要打個表就行了
按F11執行,我們可以看到
等到接近0的時候就要單擊左鍵,停止,如果還有距離,enter繼續
可以看到,1.849016最接近0
但是……
0.000001終究不是零啊
所以
我們不如提高精度
運行
可以看到,由于精度缺失,f(1.849016)=0.000000
所以最后,源代碼就可以出來了
#pragma GCC optimize(3)
#pragma GCC optimize(2)
#pragma GCC optimize(1)
#include<bits/stdc++.h>
#include<bits/c++config.h>
using namespace std;double f(double x){double a=x*x*x*x*x,b=15.00*x*x*x*x,c=85.00*x*x*x,d=225.00*x*x,e=274.00*x,f=121.000;//cout<<fixed<<setprecision(6)<<a-b-c-d-e-f;return a-b+c-d+e-f;
}
int main(){cout<<fixed<<setprecision(6)<<1.849016<<endl;;return 0;
}