题解 | #求解立方根#
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
const rl = require("readline").createInterface({ input: process.stdin });
rl.on('line', function(line) {
let n = line
console.log(getNum(n))
})
function getNum(n) {
let low
let high
if(n>0&&n<1) {
low = 0
high = 1
}else if(n<0&&n>-1) {
low = -1
high = n
}else {
low = Math.min(0, n)
high = Math.max(0, n)
}
let mid
while(high-low>0.0001) {
mid = (Number(low) + Number(high)) / 2
// console.log(mid)
if(mid*mid*mid<n) {
low = mid
}else {
high = mid
}
// console.log(low, high)
}
return Number(mid).toFixed(1)
}
利用二分法,重点在于对于输入浮点数的大小范围,给low和high合适的赋值操作