Heim  >  Artikel  >  Web-Frontend  >  Lustige JavaScript-Frage: Ein Haus bauen

Lustige JavaScript-Frage: Ein Haus bauen

黄舟
黄舟Original
2017-02-15 14:11:361736Durchsuche

Wir planen den Bau eines Hauses mit N Etagen. Der Entwurf sieht wie folgt aus:

Das Volumen der unteren Etage beträgt N3 th Potenz, das Volumen der vorletzten Schicht ist (N-1) hoch 3, und so weiter, das Volumen der obersten Schicht ist 1 potenziert mit 3.

Jetzt kommt das Problem. Aufgrund verschiedener Faktoren hat der Designer beschlossen, das Gesamtvolumen auf M zu begrenzen.

Ist es möglich, dass das M-Volumen genau richtig ist, um dieses Haus zu bauen?

Bitte beachten Sie, nicht mehr und nicht weniger.

Wenn möglich, geben Sie bitte die Layer-Nummer N zurück.

Der Funktionsprototyp lautet wie folgt:

findNb (M)

Der Rückgabewert ist eine Ganzzahl Dies ist nicht möglich. Bitte geben Sie -1 zurück.


findNb(1071225) // --> 45层
findNb(91716553919377) // --> -1

Idee:

Ich habe das Gesamtvolumen M angegeben, dann von oben beginnen und jedes Volumen subtrahieren einer Schicht bis M<=0. Wenn

gleich 0 ist, kann das Haus gebaut werden und die Anzahl der Stockwerke wird zurückgegeben. Wenn

eine negative Zahl ist, bedeutet dies, dass die Lautstärke M ungeeignet ist und -1 zurückgegeben wird.

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

Das Obige ist der Inhalt interessanter JavaScript-Fragen: Ein Haus bauen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn