c++简单题解:
使用二分法一步一步判断,

#include<iostream>
using namespace std;

int main()
{
    float n;
    cin >> n;
    int mark = 1; //标记正负数
    if(n<0)  mark=-1;
    n*=mark;
    int a[(int)n+2];
    a[0]=0;
    double f=0.0;//结果
    for(int i=0; ; i++)
    {
        a[i]=i*i*i;
        if(a[i]==n)
        {
            f=a[i];
            break;
        }
        else if(a[i]>n&&a[i-1]<n)
        {
            float tmp = i-0.5;
            float t=tmp*tmp*tmp;
            if(t>n)
                tmp=i-1;
            else if(t==n)
            {
                f=tmp; 
                break;
            }
            t=tmp*tmp*tmp;
            while(t<n)
            {
                tmp+=0.1;
                t=tmp*tmp*tmp;
            }
            t=tmp-0.05;
            if(t*t*t>n)
               f=tmp-0.1;
            else
               f=tmp;
            break;
        }
    }
    cout << f*mark << endl;
    return 0;
}