题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
#include <iomanip>
#include <iostream>
using namespace std;
//查找一个数是否单独目标值,二分法。由于需要答案的小数位达标,且数值正确,所以循环时可以多加上一个小数精度的条件。我们算到下一位精度,保证输出时保留一位小数结果正确
double cal(double val){
double left=-20.0,right=20.0,n;
while(abs(right-left)>0.01&&left<right){
n=(right+left)/2.0;
if(n*n*n>val){right=n;}
else if(n*n*n<val){left=n;}
else{return n*1.000;}
}
return n;
}
int main() {
double val;
cin>>val;
cout<<fixed<<setprecision(1)<<cal(val)<<endl;
}
// 64 位输出请用 printf("%lld")
