题解 | #求解立方根#

求解立方根

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”,某博客继续更新。

全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
12-26 14:44
复旦大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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