这个题二分法不对吗,数学函数也试了试,也是只过了一个测试点啊
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
long long n,ans;
cin>>n;
long long L=-10000,R=10000;
for(int i=1;i<=100;i++){
long long mid=(L+R)/2;
if(mid*mid*mid==n){
ans=mid;
break;
}else{
if(mid*mid*mid<n){
L=mid;
}else{
R=mid;
}
}
}
if(ans*ans*ans==n){
cout<<ans;
}else{
ans=L;
cout<<ans;
}
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n;
cin>>n;
cout<<floor(pow(n,1.0/3));
return 0;
}