>  기사  >  웹 프론트엔드  >  JavaScript 재미있는 질문: 집 짓기

JavaScript 재미있는 질문: 집 짓기

黄舟
黄舟원래의
2017-02-15 14:11:361759검색

우리는 N개 층으로 집을 지을 계획입니다.

하층의 볼륨은 N3개입니다. 번째 거듭제곱인 두 번째 레이어의 볼륨은 (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;
}

위 내용은 재미있는 자바스크립트 질문: 집 짓기 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.