Can you solve this equation?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8158 Accepted Submission(s): 3759
Now please try your lucky.
2 100 -4
1.6152 No solution!
#include<iostream>
#include<stdio.h>
#include<cmath>
using namespace std;
double y,root;
int main()
{
double bs(double,double);
double f(double);
int t,i,j;
scanf("%d",&t);
while(t--)
{
//scanf("%llf",&y);
cin>>y;//不能用c语言的格式输入double型数据,不信你可以立即输出y进行检验
double r=807020306;
if(y<6||y>r){printf("No solution!\n");}
else{root=bs(0,100);printf("%.4lf\n",root);}
}
return 0;
}
double f(double x)
{
return 8*x*x*x*x+ 7*x*x*x + 2*x*x + 3*x + 6-y;
}
//begin和end是解所在的区间范围
double bs(double begin,double end)
{
double mid;
while(fabs(end-begin)>1e-9)
{
mid=(begin+end)/2;
if(f(mid)>0){end=mid;}
else{begin=mid;}
}
return mid;
}