二分-hdu-2199

来源:互联网 发布:吉他伴奏器软件 编辑:程序博客网 时间:2024/06/09 12:28

思路:

二分求值是否满足。

#include <iostream>#include <stdio.h>#include <cmath>#define exp 1e-15using namespace std;double Y;double judge(double x){    double num=x*8*x*x*x + 7*x*x*x + 2*x*x + 3*x + 6;    return num;}int main(){    int n;    cin>>n;    while(n--)    {        cin>>Y;        double l=0,r=100;        double mid;        int flag=0;        if(Y<6)        {                printf("No solution!\n");                continue;        }        while(r-l>exp)        {            mid=(l+r)/2;            //mid=1.61515;            double tep=judge(mid);            if(fabs(tep-Y)<=0.00001)            {                flag=1;                printf("%.4lf\n",mid);                break;            }            if(tep>Y)                r=mid;            else                l=mid;        }        if(!flag)            printf("No solution!\n");    }    return 0;}


0 0