首页  >  文章  >  web前端  >  JavaScript趣题:建房子

JavaScript趣题:建房子

黄舟
黄舟原创
2017-02-15 14:11:361759浏览

我们计划建造一个N层楼的房子,它的设计蓝图是这样的:

最下面一层楼的体积是N3次方,倒数第二层的体积是(N-1)3次方,以此类推,顶层的体积是13次方。

现在问题来了,因为各种因素的考虑,设计师决定把总体积限制在M

M体积有没有可能正好建好这栋房子?

请注意,不能多一点,也不能少一点。

如果能,请返回层数N

函数原型如下:

 findNb (M)

返回值是一个整数,如果不能做到,请返回-1


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

思路:

我给定了总体积M,那就从顶层开始,依次减去每一层的体积,直到M<=0

若等于0,那就是,正好可以建好房子,返回层数。

若为负数,那就说明,体积M不合适,返回-1

function findNb(m) {
    var nb = 1;
    while(m > 0){
        m -= Math.pow(nb++,3);
    }
    return m == 0 ? nb - 1 : -1;
}

以上就是JavaScript趣题:建房子的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn