为什么只能用double,用float就会超时??
#include <bits/stdc++.h>
#define float double
using namespace std;
double f(float a){
return a*a*a;
}
int main(){
double n;
cin>>n;
double aa=1e-7;
double l=-10000,r=10000;
while(r-l>=aa){
double mid=(l+r)/2;
if(f(mid)>=n){
r=mid;
}
else l=mid;
}
printf ("%.6f",l);
return 0;
}
肯定是精度不够呀~,float有效位数只有6~7位。