NOI:2806 二分法求函数的零点

题目链接


题解:二分法

注意:double判断大小应该用差值小于某个数来进行判断

#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
double test(double k){
    return pow(k,5)-15*pow(k,4)+85*pow(k,3)-225*pow(k,2)+274*k-121;
}
int main(){
    double l=1.500000,r=2.400000;
    double mid=0.0;
    while(abs(l-r)>0.000001){
        mid=(l+r)/2;
        if(test(mid)>0){
            l=mid;
        }else if(test(mid)<0){
            r=mid;
        }
    }
    printf("%.6f\n",mid);
}

猜你喜欢

转载自blog.csdn.net/wuzhenzi5193/article/details/80502843