首页 > 其他 > 详细

HDU 2199 Can you solve this equation?

时间:2014-02-07 18:18:40      阅读:346      评论:0      收藏:0      [点我收藏+]

题解:二分求解

bubuko.com,布布扣
#include <cstdio>
#include <cmath>
using namespace std;

double f(double x)
{
    return(8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6);
}

int main()
{
    int t;
    double l,r,mid,yl,yr,y,y1;
    scanf("%d", &t);
    while(t--)
    {
        l=0;
        r=100;        
        scanf("%lf",&y1);   
        yl=f(l)-y1;
        yr=f(r)-y1;
        if (yl>0||yr<0)
            printf("No solution!\n");
        else{
            while (fabs(l-r)>=0.000000001)
            {
                mid=(l+r)/2;
                y=f(mid)-y1;
                if (y>=0) r=mid;
                else l=mid;
            }
            printf("%0.4lf\n",mid);
        }
    }
    return 0;
}
bubuko.com,布布扣

HDU 2199 Can you solve this equation?

原文:http://www.cnblogs.com/forever97/p/3539505.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!