我們計劃建造一個N層樓的房子,它的設計藍圖是這樣的:
最下面一層樓的體積是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趣題:蓋房子的內容,更多相關內容請關注PHP中文網(www.php.cn)!