您的位置:首页 > 其它

HDU-2899(简单数学问题+二分查找)

2012-08-13 10:43 363 查看
其实就是简单的数学求极值问题.

看了代码大家都会知道的.

本来是想好好学学二分查找这种方法的,但是发现专门考二分查找的不多,它只是种思想,是一种工具.

贴出代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

const double eps=1e-8;

int y;

double g(double x)
{
return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x;
}

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

int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&y);
if(g(100.0)-y<=0)
printf("%.4lf\n",f(100.0));
else
{
double l=0,r=100;
double mid;
while(l+eps<=r)
{
mid=(l+r)/2;
if(g(mid)-y<0)
l=mid;
else
r=mid;
}
printf("%.4lf\n",f(mid));
}
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工具