include
include
include<math.h>
using namespace std;
double cubeRoot(double x){
int flag=1;
if(x<0){
x=-x;
flag=-1;
}
double L;
double R;
double m;
double ERR;
if(x>1){
ERR=0.01;
L=0;
R=x;
while(1){
m=L+(R-L)/2.0;
if(m*m*m-x<=ERR && x-m*m*m<=ERR)
return m*flag;
else if(m*m*m-x>ERR)
R=m;
else //if(x*x*x-m*m*m>ERR)
L=m;
}
}
else{//0-1
ERR=0.00001;
L=x;
R=1;
while(1){
m=L+(R-L)/2.0;
if(m*m*m-x<=ERR && x-m*m*m<=ERR)
return m*flag;
else if(m*m*m-x>ERR)
R=m;
else //if(x*x*x-m*m*m>ERR)
L=m;
}
}}
void printDouble(double d){
string s = to_string(d);
int i=s.find('.');
if(stoi(s.substr(i+2,1))>=5){
cout<< ((stoi(s.substr(i+1,1))+1 < 10) ? stoi(s.substr(0,i)) : stoi(s.substr(0,i))+1 );
cout<<"."<< ((stoi(s.substr(i+1,1))+1 < 10 ) ? stoi(s.substr(i+1,1))+1 : 0);
}
else
cout<<s.substr(0,i+1)<<stoi(s.substr(i+1,1))<<endl;
}
int main(){
double d;
cin>>d;
d=cubeRoot(d); printDouble(d); return 0;
}



京公网安备 11010502036488号