题意:在 0-100 的实数范围内找到方程的解。
二分水题
#include<iostream>
#include<cmath>
#include<queue>
#include<cstring>
#include<string>
#include<map>
#include<stack>
#include<set>
#include<cstdio>
#include<algorithm>
using namespace std;
long long y;
double f(double x){
return 8*pow(x,4) + 7*pow(x,3) + 2*pow(x,2) + 3*x - y+6;
}
int main(){
int t; cin >> t;
while(t--){
scanf("%lld", &y);
if(f(0)*f(100) > 0){
cout << "No solution!" << endl;
continue;
}
double mid, l = 0, r = 100;
while(r-l > 1e-6){
mid = l+(r-l)/2;
if(f(mid) >= 0)
r = mid;
else l = mid;
}
printf("%.4fn", mid);
}
return 0;
}