最下面一层楼的体积是n的3次方,倒数第二层的体积是(n-1)的3次方,以此类推,顶层的体积是1的3次方。
现在问题来了,因为各种因素的考虑,设计师决定把总体积限制在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趣题:建房子的内容。