题解 | #求解立方根#

求解立方根

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合适的赋值操作

全部评论

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务