题解 | #求解立方根#
求解立方根
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")