题目描述
-
注意小于一的情况有点特殊。
-
bool值的判断,条件运算符要比if快一倍!
C++ 代码
#include<iostream>
using namespace std;
double p=1e-8;
int main(){
double n;cin>>n;
bool f=n<0;
n=f?-n:n;
double l=p,r=n;
if(n<1) {
l=n,r=1;
}
while(r-l>p){
double mid=(l+r)/2;
if(mid*mid*mid<n) l=mid;
else r=mid;
}
l=f?-l:l;
printf("%.6lf",l);
return 0;
}