题解 | #求解立方根#
求解立方根
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”,某博客继续更新。


查看5道真题和解析