우리는 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)를 주목해주세요!