刚开始看到这个还是有点懵的,后来说是二分,我就想到了浮点二分,浮点二分都是基础的基本知识,我的栏目也有,有兴趣可以关注一下,有模板。
最后说一下浮点数的比较(两个浮点数相等是用相差是否小于eps)
eps设题目要求的精度+2。本题给了6,就设eps=1e-8
直接上代码吧。
#include<iostream>
using namespace std;
const double eps=1e-8;
int main(void)
{
double n;
cin>>n;
double l=-1e6,r=1e6;
while(r-l>eps)
{
double mid=(r+l)/2;
if(mid*mid*mid>n) r=mid;
else l=mid;
}
printf("%.6lf",l);
}