[https://www.acwing.com/problem/content/description/792/)
```cpp
bool check(double x) {/* ... */} // 检查x是否满足某种性质
double bsearch_3(double l, double r)
{
const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求
while (r - l > eps)
{
double mid = (l + r) / 2;
if (check(mid)) r = mid;
else l = mid;
}
return l;
}
#include <bits/stdc++.h>
using namespace std;
double n,l,r,mid;
int main()
{
ios::sync_with_stdio(false);
cin >> n;
l=-1e4,r=1e4;
while(r-l>1e-7)
{
mid=(l+r)/2;
if(mid*mid*mid>=n)
r=mid;
else
l=mid;
}
printf("%f\n",l);
return 0;
}