Heim > Artikel > Web-Frontend > Lustige JavaScript-Frage: Ein Haus bauen
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)!