数学上经常需要解方程。现在有函数: f(x) = 2x^5+7x^3+100,求f(x)=y解。
提示:下面是goc程序画出的函数图形,可以看出函数是单调上升的。
输入格式
第一行1个实数:y,范围在[-1000000000,1000000000]。
输出格式
一个实数x,使得f(x)=y。
x的精度小于0.001。
输入/输出例子1
输入:
200
输出:
1.91184
样例解释
无
#include<bits/stdc++.h>
using namespace std;
double f(double x)
{
return 2*(x*x*x*x*x)+7*(x*x*x)+100;
}
double find(int y)
{
double L=-1000000000,R=1000000000;
while(L+0.00001<R)
{
double mid=(L+R)/2;
if(f(mid)<=y) L=mid;
else R=mid;
}
return L;
}
int main()
{
double y;
cin>>y;
cout<<find(y);
return 0;
}