题解 | #求解立方根#
求解立方根
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合适的赋值操作