1. 首先是核心得二分法。
  2. 其次,如果是负数,需要先变成正数。
  3. 再其次,不管是正数还是负数,只要绝对值小于1,那就设置为 有边界为1.
#include<bits/stdc++.h>

using namespace std;

int main(){
    double n;

    while(cin>>n){

        int flag = 0;

        if(n<0){
            n = -1*n;
            flag = 1;
        }


        double left = 0;
        double right = n>1? n:1;   //如果绝对值小于1,那左边界需要设置为1

        while(right-left>0.00001){//精度
            double mid = (left+right)/2;

            if(pow(mid,3)>n){
                right = mid;
            }else{
                left = mid;
            }

        }


        if(flag){
            right *= -1;
        }

        if(pow(round(right),3)==n){
            printf("%.1f",round(right));
        }else{
            printf("%.1f",right);
        }


    }



    return 0;
}