您的位置:首页 > 其它

7/21 C 解题报告

2015-07-22 09:07 232 查看

7/21 C 解题报告

这个题可以用数学方法,找最小值,求导后在区间内只有一个零点,和解方程又是一样的。如果直接分三个点后去查的话就有一些误差。

以下是代码(可直接AC):

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{
int t;
long long y;
long double res,resl,resr;
long double tmp;
double low=0,high=100;
double mid=50;
bool flag;
cin>>t;
while(t--)
{

low=0;high=100;mid=50;
cin>>y;
while(low<high)//二分
{
res=42*mid*mid*mid*mid*mid*mid+48*mid*mid*mid*mid*mid+21*mid*mid+10*mid-y;

if(abs(res)<1e-7)
{

cout<<setiosflags(ios::fixed)<<setprecision(4);
cout<<6*mid*mid*mid*mid*mid*mid*mid+8*mid*mid*mid*mid*mid*mid+7*mid*mid*mid+5*mid*mid-y*mid<<endl;
break;
}else{
if(res>0)
{
high=mid;
mid=(high+low)/2;
}else{
low=mid;
mid=(high+low)/2;
}
}

}

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