题解 | #求解立方根#

求解立方根

https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    let num = parseFloat(await readline());
    let negative = num < 0;
    num = Math.abs(num);
    const gap = 0.001;
    let left = 0,right = Math.max(num,1),pre = 0;
    while(left+gap < right){
        const mid = left + (right-left)/2;
        if(pre === mid) break;
        pre = mid;
        // console.log(left,right,mid)
        if(mid*mid*mid-num>gap){
            right = mid-gap;
        }else if (mid*mid*mid-num<-gap){
            left = mid+gap;
        }
    }
    console.log(negative?0-left.toFixed(1):left.toFixed(1));
}()

华为OD,我昵称“od400” 文章被收录于专栏

华为OD机试刷题历程,因涉及华为权益,牛客不允许更新了。我昵称“od400”,某博客继续更新。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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