题解 | #求解立方根#
求解立方根
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 let num; while ((line = await readline())) { num = +line; } let left; let right; let result; let half; const t=0.01; if (num == 1) { result = 1; } else if (num == -1) { result = -1; } else if (num == 0) { result = 0; } else if (num > -1 && num < 1) { if (num > 0) { left = 0; right = 1; half = (left + right) / 2; // console.log(half) while (Math.abs(half ** 3 - num) > t) { if (half ** 3 < num) { left = half; half = (left + right) / 2; } else { right = half; half = (left + right) / 2; } } result = half; } else { left = -1; right = 0; half = (left + right) / 2; while (Math.abs(half ** 3 - num) > t) { if (half ** 3 < num) { left = half; half = (left + right) / 2; } else { right = half; half = (left + right) / 2; } } result = half; } } else if (num > 1 || num < -1) { if (num > 1) { left = 1; right = num; half = (left + right) / 2; while (Math.abs(half ** 3 - num) > t) { if (half ** 3 < num) { left = half; half = (left + right) / 2; } else { right = half; half = (left + right) / 2; } } result = half; } else { left = num; right = -1; half = (left + right) / 2; while (Math.abs(half ** 3 - num) > t) { if (half ** 3 < num) { left = half; half = (left + right) / 2; } else { right = half; half = (left + right) / 2; } } result = half; } } console.log(result.toFixed(1)); })();