题解 | #求解立方根#
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
二分法
输入的数据a有可能为正数或负数,以正数为例: 把从0到a的数据以0.0001为阶梯划分成n个数,然后在这些数中进行二分法,最终求出的值满足与a相差不到0.0001则符合条件,退出循环;最后保留一位小数
let x = 0.0001;
let low = Math.min(-1.0, a);
let high = Math.max(1.0, a);
let ans = (low+high)/2; //设置中间值
while(Math.abs(ans**3 - a) >= x){
if(ans**3 < a){
low = ans; //向右找
}else{
high = ans; //向左找
}
ans = (low + high)/2;
}
console.log(ans.toFixed(1));