算法题,单调函数求零点(简单的二分法)
参考回答:
#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; }