Home > Web Front-end > JS Tutorial > JavaScript Fun Question: Building a House

JavaScript Fun Question: Building a House

黄舟
Release: 2017-02-15 14:11:36
Original
1771 people have browsed it

We plan to build a house with N floors. Its design blueprint is as follows:

The volume of the bottom floor is N# To the ##3 power, the volume of the penultimate layer is (N-1) to the 3 power, and so on, the volume of the top layer is 1 to the 3 power.

Now comes the problem. Due to various factors, the designer decided to limit the total volume to

M.

Is it possible that the

M volume is just right to build this house?

Please note, no more, no less.

If possible, please return the layer number

N.

The function prototype is as follows:

findNb (M)

The return value is an integer. If it cannot be done, please Return

-1.


findNb(1071225) // --> 45层
findNb(91716553919377) // --> -1
Copy after login

Idea:

I have given the total volume

M, then start from the top layer and subtract each layer in turn volume until M<=0. If

is equal to

0, that is, the house can be built and the number of floors is returned. If

is a negative number, it means that the volume

M is inappropriate and -1 will be returned.

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

The above is the content of JavaScript interesting questions: building a house. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template