Can you solve this equation? -----HDU 2199

来源:互联网 发布:linux voip服务器 编辑:程序博客网 时间:2024/05/22 16:59



这道题就是入门的一道二分法水题,思路很简单每次找他的一半,当头和尾逼近所设的精度时,答案就出来了


#include <cstdio>#include <cmath>double y;const double eps=1e-10;double zhi(double x){    return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6-y;}main (){    int  t;    scanf("%d",&t);    while (t--)    {        double ans;        scanf("%lf",&y);        double l=0,r=100,mid;        if(zhi(l)>eps||zhi(r)<eps)        {            printf("No solution!\n");            continue;        }        while (l+eps<=r)        {            mid=(l+r)/2;            if(zhi(mid)<eps)                l=mid+eps;            else                r=mid-eps;        }        printf("%.4lf\n",mid);    }}


0 0
原创粉丝点击