描述
计算一个浮点数的立方根,不使用库函数。
保留一位小数。
数据范围:∣val∣≤20
输入描述:
待求解参数,为double类型(一个实数)
输出描述:
输出参数的立方根。保留一位小数。
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())) {
let tokens = Number(line);
let input = Math.abs(tokens); // 转换成正数来计算
let val = 0; // 当前的根值的立方
let preValue = 0; // 上一个根植的立方
let result = 0; // 根植
while (val < input) {
result += 0.1;
preValue = val;
val = result * result * result;
}
if (Math.abs(preValue - input) < Math.abs(val - input)) {
result -= 0.1;
}
console.log(Number(result * (tokens > 0 ? 1 : -1)).toFixed(1)); // 转成一位小数和恢复正负
}
})();