题解 | #尼科彻斯定理#

尼科彻斯定理

https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85

老规矩,先分享闭眼算法,再分享巧妙算法;
//闭眼算法
while (line = readline()) {
    //定义n为输出的奇数个数;
    let n = parseInt(line);
    //定义m为奇数之和,亦为n的立方;
    let m = n**3;
    let start = 0;
    for (let i = 1; i < m; i+=2) {
        //定义n个奇数的平均数,起始数为i;
        let avg = 1/2*(i + i+2*(n-1));
        //如果符合n个奇数之和等于m,则找到起始数;
        if (avg*n == m) {
            start = i;
        }
    }
    let res = [];
    //分别push出n个奇数;
    for (let i = 0; i < n; i++) {
        res.push(start+ 2*i);
    }
    //输出奇数并用"+"连接;
    console.log(res.join('+'));
}
//巧妙算法
/*
while(line = readline()) {
    //意外发现起始数等于输入的数字line*(line-1) +1
    let start = line * (line - 1) + 1
    let res = []
    //找到起始数,后面就顺理成章可以for循环出来了
    for(let i = 0; i < line; i++) {
        res.push(start + i * 2)
    }
    console.log(res.join('+'))
}
*/    


全部评论

相关推荐

勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务