题解 | #求解立方根#javascript:void(0);

求解立方根

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

额,一看这就是投机取巧来的,我连二分法都没用

  1. 就是遍历,求三次方跟,而且因为要求保留一位小数,我就直接在一位小数里找最接近的了
  2. 注意遍历的范围,如果|原值|>1,所以就在原值的正负范围内找就可以了;否则要在1以内找,我是发现0.3的用例检测错误才想到的!!
// 遍历一个值,求其立方的结果,最后和val进行比较看是否相等,即二者差值 < Number.EPSILON
// 但是遍历的时候可以用二分法来提高效率
let num = parseFloat(readline()), absNum = Math.abs(num) > 1?Math.abs(num): 1
let delat = 10000, index = 21
for (let i = - absNum; i <= absNum; i += 0.1) {
    if (Math.abs((i*i*i - num)) < delat) {
        delat = Math.abs((i*i*i - num));
        index = i
    }
    
}
console.log(index.toFixed(1))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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