跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

JavaScript趣题:建房子

我们计划建造一个 n 层楼的房子,它的设计蓝图是这样的: 最下面一层楼的体积是 N 的 3 次方,倒数第二层的体积是 (N-1) 的 3 次方,以此类推,顶层的体积是 1 的 3 次方。 现在问题来了,因为各种因素的考虑,设计师决定把总体积限制在 M 。 那 M 体积有没有可能正好建好这栋房子? 请注意,不能多一点,也不能少一点。 立即学习 “ Java免费学习笔记(深入) ”; 如果能,请返回层数 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)!

相关文章