题目:
思想:
- 采用二分,枚举逼近三次方根(找mmm>=x的第一个m值)。
- 存在单调性一定可以二分,二分不一定具有单调性。三次方根函数存在单调性。
知识点:
- printf的 %lf 默认保留6位小数。
- 可以使用STL的cbrt函数直接求取三次方根。
二分解法:
#include <bits/stdc++.h>
using namespace std;
int main(){
double x,r=10000,l=-10000;
cin >> x;
while(r-l>1e-8){ //精度设置为1e-8
double mid=(r+l)/2;
if(mid*mid*mid>=x) r=mid;
else l=mid;
}
printf("%lf",l);
return 0;
}
cbrt解法:
#include <bits/stdc++.h>
using namespace std;
int main(){
double n;
cin >> n;
printf("%lf",cbrt(n));
return 0;
}
END