【算法】不使用库函数,求解立方根

发布时间:2024年01月10日

牛客原题:https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca?tpId=37&tqId=21330&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
在这里插入图片描述
关键点:利用牛顿迭代公式~

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
    //  x^3 = a ,即 fx = x^3 -a
    // 牛顿迭代公式 下一次近似解 xn+1 = xn- f(x)/f'(x)
    while ((line = await readline())) {
        let tokens = line.split(" ");
        const a = parseFloat(tokens[0]);
        let x = a / 3; // 设定一个初始x值
        const tolerance = 1e-6; // 设置一个精度
        while (Math.abs(a - x * x * x) > tolerance) {
            const fx = x * x * x - a;
            x = x - fx / (3 * x * x);
        }
        console.log(parseFloat(x.toFixed(1)))
    }
})();

文章来源:https://blog.csdn.net/qq_43682422/article/details/135502957
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。