#include <iostream>
#include <iomanip>
using namespace std;
//求解立方根
class SolveCubeRoot {
private:
double n;
public:
//构造函数
SolveCubeRoot(const double a);
//析构函数
~SolveCubeRoot();
//立方
const double cube(const double i)const;
//立方根
const double cubeRoot(const double lower = -3, const double upper = 3)const;
};
SolveCubeRoot::SolveCubeRoot(const double a) {
this->n = a;
return;
}
SolveCubeRoot::~SolveCubeRoot() {
}
const double SolveCubeRoot::cube(const double i) const {
return i * i * i;
}
const double SolveCubeRoot::cubeRoot(const double lower,
const double upper) const {
//由于输入值的绝对值不超过20,可以将最初的边界选为[-3,3]
double mid = (lower + upper) / 2;
double cube1 = this->cube(lower);
double cube2 = this->cube(mid);
double cube3 = this->cube(upper);
if (cube2 == this->n)
return mid;
if (cube3 - cube1 < 0.1)
return mid;
if (cube2 > this->n)
return this->cubeRoot(lower, mid);
else
return this->cubeRoot(mid, upper);
}
int main() {
double a;
while (cin >> a) { // 注意 while 处理多个 case
cout << fixed << setprecision(1) << SolveCubeRoot(a).cubeRoot() << endl;
}
}
// 64 位输出请用 printf("%lld")