给出方程:
8*x4 + 7*x3 + 2*x2 + 3*x + 6 = Y
其中,实数Y满足 (fabs(Y) <= 1e10)
请输出x在区间[0,100]的解,结果精确到小数点后4位。
看着 课件写的 ,慢慢理解 中
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double y;
double l,r,m;
double f(double x)
{
return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;
}
int main()
{
int t ;
scanf("%d",&t);
while(t--)
{
scanf("%lf",&y);
if(y>=f(0)&&y<=f(100))
{
l=0;
r=100;
while(r-l>1e-6)
{
m=(l+r)/2;
double ans=f(m);
if(ans>y)
r=m-1e-7;
else
l=m+1e-7;
}
printf("%.4lf\n",(l+r)/2);
}
else
printf("No solution\n");
}
return 0;
}