题解 | #求解立方根#

求解立方根

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

二分法

输入的数据a有可能为正数或负数,以正数为例: 把从0到a的数据以0.0001为阶梯划分成n个数,然后在这些数中进行二分法,最终求出的值满足与a相差不到0.0001则符合条件,退出循环;最后保留一位小数

let x = 0.0001;
let low = Math.min(-1.0, a);
let high = Math.max(1.0, a);
let ans = (low+high)/2; //设置中间值
while(Math.abs(ans**3 - a) >= x){
    if(ans**3 < a){
        low = ans; //向右找
    }else{
        high = ans; //向左找
    }
    ans = (low + high)/2;
}
console.log(ans.toFixed(1));
全部评论
Math.min(-1.0, a);Math.max(1.0, a); 不明白 -1.0 和 1.0 这俩值在这里的意义
点赞 回复 分享
发布于 2024-07-08 16:14 宁夏

相关推荐

面了100年面试不知...:今年白菜这么多,冬天可以狂吃了
点赞 评论 收藏
分享
10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
评论
9
1
分享

创作者周榜

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