187

问答题 187 /376

算法题,单调函数求零点(简单的二分法)

参考答案

参考回答:

#include <iostream>
#include <cstdio>
using namespace std;
double f(double x){
return x*x*x*x*x-15*x*x*x*x+85*x*x*x-225*x*x+274*x-121;
}
int main()
{

double x=1.5,y=2.4;  //边界条件

while(y-x>=0.0000001){  //保留到6位小数 计算到7位

double t=(x+y)/2;  //二分法

if(f(x)*f(t)<=0) y=t;  //解 (x,t]

else x=t;  //解 (t,y)

}
printf("%.6f\n",x);
return 0;
}