ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の楽しい質問: 家を建てる

JavaScript の楽しい質問: 家を建てる

黄舟
黄舟オリジナル
2017-02-15 14:11:361736ブラウズ

Nの床を持つ家を建てる予定です。その設計図は次のとおりです:

一番下の階の体積は

N3乗で、最後から2番目の床の体積はです。 ( N-1) の 3 乗など、最上層の体積は 1 3 乗です。 ここで問題が発生します。さまざまな要因により、デザイナーは総量を

M

に制限することにしました。 この家を建てるのに

M

のサイズがちょうど良いという可能性はありますか? それ以上でもそれ以下でもありませんのでご了承ください。

できればレイヤー数

N

を返してください。
関数のプロトタイプは次のとおりです:

findNb (M)


戻り値は整数です。それができない場合は、

-1

を返してください。

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

アイデア:

総体積

M

を与えてから、最上層から始めて、Mになるまで各層の体積を順番に減算します。

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 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。