就过了一个点,为什么?
  • 板块B3627 立方根
  • 楼主Gyk1013
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/5/10 14:41
  • 上次更新2023/10/28 01:46:02
查看原帖
就过了一个点,为什么?
521118
Gyk1013楼主2022/5/10 14:41

这个题二分法不对吗,数学函数也试了试,也是只过了一个测试点啊

#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;
}
2022/5/10 14:41
加载中...