首页 > 其他 > 详细

hdu2199,double二分

时间:2019-10-30 01:23:28      阅读:138      评论:0      收藏:0      [点我收藏+]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2199

题意:给一个Y,求满足8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y的x,且X在范围[0,100]中,若没有符合要求的X则输出No solution!

 

不知道为什么while开到1e-6会wa,但是开到1e-8也就二分34次(不用吝啬haha)

#include<bits/stdc++.h>
using namespace std;
double f(double n){return 8*n*n*n*n+7*n*n*n+2*n*n+3*n+6;}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        double l=0,r=100,y;
        scanf("%lf",&y);
        if(f(0)>y||f(100)<y){printf("No solution!\n");continue;}    
        while(r-l>1e-7)
        {
            double mid=(l+r)/2;
            if(f(mid)<y)l=mid;  //<=和<都可以过... 
            else r=mid;
        }
        printf("%.4f\n",l);
    }
    return 0; 
} 

 

hdu2199,double二分

原文:https://www.cnblogs.com/myrtle/p/11762293.html

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