这是一个典型的二分法题目,题目还是不是很难的这个方程答案和y比较,精度为1e-6,
题目就是给你一个方程,和它的结果,让你求X。步骤很容易,就是利用二分法,一点一点求。
#include <cstdio>
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<numeric>
#include<math.h>
#include<string.h>
#include<map>
#include<set>
#include<vector>
#include<iomanip>
using namespace std;
double eqa(double x)
{
return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}
int main()
{
//freopen("r.txt","r",stdin);
double x,y,r,l,mid;
int N;
cin>>N;
while(N--)
{
cin>>y;
if(eqa(0)>y||eqa(100)<y)
{
cout<<"No solution!"<<endl;
continue;
}
r=100;
l=0;
while((r-l)>0.00000001)
{
mid=(r+l)/2;
if(eqa(mid)>y) r=mid;
else l=mid;
}
printf("%.4f\n",mid);
}
}
题目就是给你一个方程,和它的结果,让你求X。步骤很容易,就是利用二分法,一点一点求。
#include <cstdio>
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<numeric>
#include<math.h>
#include<string.h>
#include<map>
#include<set>
#include<vector>
#include<iomanip>
using namespace std;
double eqa(double x)
{
return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}
int main()
{
//freopen("r.txt","r",stdin);
double x,y,r,l,mid;
int N;
cin>>N;
while(N--)
{
cin>>y;
if(eqa(0)>y||eqa(100)<y)
{
cout<<"No solution!"<<endl;
continue;
}
r=100;
l=0;
while((r-l)>0.00000001)
{
mid=(r+l)/2;
if(eqa(mid)>y) r=mid;
else l=mid;
}
printf("%.4f\n",mid);
}
}