我们计划建造一个
n
层楼的房子,它的设计蓝图是这样的:
最下面一层楼的体积是
N
的
3
次方,倒数第二层的体积是
(N-1)
的
3
次方,以此类推,顶层的体积是
1
的
3
次方。
现在问题来了,因为各种因素的考虑,设计师决定把总体积限制在
M
。
那
M
体积有没有可能正好建好这栋房子?
请注意,不能多一点,也不能少一点。
立即学习
“
Java免费学习笔记(深入)
”;
如果能,请返回层数
N
。
函数原型如下:
findNb (M)
返回值是一个整数,如果不能做到,请返回
-1
。
思路:
我给定了总体积
M
,那就从顶层开始,依次减去每一层的体积,直到
M<=0
。
若等于
0
,那就是,正好可以建好房子,返回层数。
若为负数,那就说明,体积
M
不合适,返回
-1
。
以上就是JavaScript趣题:建房子的内容,更多相关内容请关注PHP中文网(www.php.cn)!
findNb(1071225) // --> 45层
findNb(91716553919377) // --> -1function findNb(m) {
var nb = 1;
while(m > 0){
m -= Math.pow(nb++,3);
}
return m == 0 ? nb - 1 : -1;
}