题解 | #求解立方根#

求解立方根

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 () {
    // Write your code here
    while ((line = await readline())) {
        if (line == "0.0" || line == "-1.0" || line == "1.0") {
            console.log(line);
            return;
        }
        let num = parseFloat(line);
        let fu = false; // 负数标志位
        if (num < 0) {
            num = -num;
            fu = true;
        }
        // 二分法
        // 注意事项,不要想当然地取1/3 或 1/2,因为存在一些特殊值,比如:0.6、2.7、5,所以真正的右边取值应该是 Math.max(1.0,num); 
        let xiao = 0.1,
            da = Math.max(1.0,num); 
        let zhongjian = parseFloat(((xiao + da) / 2).toFixed(5)); // 精度要够,多取几位
        let jingdu = 0.0001;
        while (Math.abs(zhongjian ** 3 - num) > jingdu) {
            if (zhongjian ** 3 > num) {    //
                da = zhongjian;
            } else if (zhongjian ** 3 < num) {
                xiao = zhongjian;
            }
            zhongjian = parseFloat(((xiao + da) / 2).toFixed(5)); // 精度要够,多取几位
        }
        if(fu){
            zhongjian = -zhongjian  // 别忘了负数,还原负数
        }
        zhongjian = zhongjian.toFixed(1);
        console.log(zhongjian);
    }
})();

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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