题目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;
}