已知和求等差立方和数列的最大项#JS_codewar_7

题目

Description:

Your task is to construct a building which will be a pile of n cubes. The cube at the bottom will have a volume of n^3, the cube above will have volume of (n-1)^3 and so on until the top which will have a volume of 1^3.

You are given the total volume m of the building. Being given m can you find the number n of cubes you will have to build?

The parameter of the function findNb (find_nb, find-nb, findNb) will be an integer m and you have to return the integer n such as n^3 + (n-1)^3 + ... + 1^3 = m if such a n exists or -1 if there is no such n.

Examples:

findNb(1071225) --> 45
findNb(91716553919377) --> -1

我的解

function findNb(m) {
    let n = parseInt(Math.pow(m, 1/2));
    console.log(n);
    if (n !== Math.pow(m, 1/2)) {
        return (-1);
    } else {
        let nn = 2 * n;
        let p = parseInt(Math.pow(nn, 1/2));
        if (p * (p+1) == nn) {
            return p;
        } else {
            return (-1);
        }
    }
}

我的感想

卡了很久,最后百度到了公式,所以解决了
不忍心n从0一直++
对于这种题,看答案也没什么更巧妙的了
只是还是不太会用 ()? A:B

推荐阅读更多精彩内容

  • 对于大多数的二十世纪,对于胃溃疡发病的原因普遍接受的科学的观点是由过多的胃酸引起的。然后BM论证了,胃溃疡是由细菌...
    韫左寻阅读 55评论 0 2
  • 2016年,我们经历了惊讶,也经历了喜悦,但更多的时间里,我们不过是重复着自己的人生,逐渐感受到内心深处的疲惫与烦...
    狼行love橙心阅读 63评论 0 0
  • 人大高材生魏延政写过:人一生能爱过几次? 第一次的爱,是依恋,孩童对父母的爱,是用一生来回味的; 第二次的爱,是寻...
    优祺和平阅读 137评论 0 0
  • ​ 今天是双十一 甲:我发现今年双十一商家宣传都很真实! 乙:是啊,折扣都很大。 甲:当商家在说“不只是五折”的时...
    安道利阅读 161评论 0 0
  • 小和尚:师父,小蝴蝶🦋死了…… 老师父:生老交替,生死轮回,谁都免不 得。我们活了很久之后也会死呀。 小...
    我的世界只有黑白阅读 84评论 0 0