推荐参考二分查找(my理解和模板)_小吉.cpp的博客-CSDN博客
这道题借用二分的思路即可
#include<iostream> #include<iomanip> using namespace std; double n,l,r,mid; bool flag; double q(double a){return a*a*a;} int main(){ cin>>n; l=-10000,r=10000; while(r-l>=1e-7){ mid=(l+r)/2; if(q(mid)>=n) r=mid; else l=mid; } cout<<fixed<<setprecision(6)<<l; return 0; }
因为得控制精度,所以是l=mid,而不是mid+1;