循环结束的条件是1e-8;是通过左右端点的中间值mid来二分寻找所求值的三次方根,当mid的三次方大于等于所求值时,此时端点的更新方式为右端点等于mid;否则,是左端点等于mid
代码
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
double n;
cin>>n;
double l=-10000,r=10000;
while (r-l>=1e-8)
{
double m=(r+l)/2;
if (m*m*m>=n) r=m;
else l=m;
}
printf("%.6lf\n",l);
return 0;
}