> 웹 프론트엔드 > JS 튜토리얼 > Codewars - 당신은 정사각형입니다!

Codewars - 당신은 정사각형입니다!

Linda Hamilton
풀어 주다: 2025-01-03 03:05:39
원래의
676명이 탐색했습니다.

안녕하세요.

Codewars - You

이번 시리즈에서는 Codewars의 도전 과제와 저의 사고 과정을 포스팅하고 있습니다. 가능할 때마다 JS와 Node 18을 사용하고 있습니다. 명확성을 위해 공정하게 사용하고 있습니다.

이 시리즈의 다음 작품은 "You're a Square!"입니다. 보세요, 당신의 LEGO 중독은 약간 통제 불능 상태가 되어 이제 대체 약물로 코딩을 하고 있습니다.

Codewars - You

아, 괜찮아요?. 그리고 다음 작업에는 사각형이 포함됩니다. 그래서 문제는 "이 숫자는 정사각형인가?"라는 답을 구하는 것입니다. 그렇다면 이 문제를 어떻게 해결해야 할까요? 그러나 우리는 원합니다. 여느 코딩 문제와 마찬가지로

먼저 해결해보세요. 그럼 제대로 해결해보세요. 그럼 정확하고 빠르게 풀어보세요.

  1. 1단계: 실수하기

첫 번째 직감은 다음과 같습니다.

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
      nIsSquare = ( n ** 2 ) == 2 * ( (n - 1) ** 2 ) - ( (n-2) ** 2 ) + 2;
  }
  return nIsSquare;
}
로그인 후 복사

틀렸습니다. 나는 과 함께 갔다 n2 =2(n1 )2(n2)2 2n^2 = 2(n − 1)^2 − (n − 2)^2 2n2 =2(n−1) 2(n−2)2 2
감사합니다 위키피디아. 하지만 이는 n^2을 검증하기 위한 공식입니다. n을 확인하려면 공식이 필요합니다.

  1. 2단계: 올바르게 수행더 많은 실수를 저지름

또 다른 위키피디아 기사에는 제곱근을 계산하는 깔끔하고 간단한 방법인 지수 항등식이 있었습니다.

이전 코드를 수정합니다.

var isSquare = function(n){

  let nIsSquare = false;
  if (n>=0) {
     let sqrt = Math.E ** ( Math.log(n) / 2 );
     nIsSquare = Number.isInteger(sqrt);
  }

  return nIsSquare;
}
로그인 후 복사

Annnnnnnnnnnnd:
Codewars - You

아, 어서요. 왜 실패합니까? 오. JavaScript는 부동 소수점 숫자를 사용하여 이상한 작업을 수행합니다. 따라서 코드의 잘못은 아닙니다. 오른쪽? 우리는 절대 알 수 없을 것 같아요. 그래도 사랑해요 JS. 이 변태새끼야.

  1. 3단계: 정확하고 빠르게 수행

Math.sqrt()를 사용하세요.

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
     nIsSquare = Number.isInteger(Math.sqrt(n));
  }
  return nIsSquare;
}
로그인 후 복사

최고는 아니지만 가장 간단한 솔루션입니다. 일을 합니다.

안녕하세요. 물을 마셔요???.

이전

위 내용은 Codewars - 당신은 정사각형입니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿