>웹 프론트엔드 >JS 튜토리얼 >Codewars - 초급 시리즈 #um of Numbers

Codewars - 초급 시리즈 #um of Numbers

Patricia Arquette
Patricia Arquette원래의
2025-01-05 02:25:37956검색

안녕하세요.

Codewars - Beginner Series #um of Numbers

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

이 시리즈의 다음은 Sum of Numbers입니다. 이 특정 문제에서는 코딩보다 수학에 가깝습니다. 보세요, 면적을 계산해야 합니다. 예를 들어 이 그래프에서는 -5와 4 사이의 모든 값을 표시합니다.

Codewars - Beginner Series #um of Numbers

원하는 경우 통합을 사용할 수 있지만 더 간단한 방법이 있습니다. 선형 함수를 다루고 있으므로 중앙값을 검색하고 범위에 곱할 수 있습니다.

sum =median*r ngesum = 중앙값 * 범위sum=중앙값*범위

sum =bb a2(ba 1)sum = b - frac{b-a}{2} * (b - a 1)sum=b− 2b−a*(b−a 1)

sum= b2a2 b a2sum = frac{b^2 - a^2 비 a}{2}sum= 2b2a 2 b a

그러므로 해당 방정식을 코드에 삽입하기만 하면 됩니다. 다음과 같이 시작됩니다:

function getSum(a, b)
{
   //Good luck!
}
function getSum(a, b)
{
   let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
   return sum;
}

테스트 결과는 다음과 같습니다.

Codewars - Beginner Series #um of Numbers

근데 왜요? 방정식이 정확하게 단순화된 건 알아요. 그래서... 아. 이것이 문제입니다:

getSum(a, b)

(a,b) 정확히 그 순서대로요. 입력이 (-5,4)이면 작동하지만 (4,-5)이면 작동하지 않습니다. 고치다? 두 상황 모두에 대해 "if" 문을 코딩할 수 있습니다. 그래도 나는 그렇게 하지 않을 것이다. 저는 이렇게 하겠습니다:

if (a > b){
    let c = a;
    a = b;
    b = c;
  }

그래서 우리는 모든 것을 하나로 모았습니다.

function getSum(a, b)
{
  if (a > b){
    let c = a;
    a = b;
    b = c;
  }
  let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
  return sum;
}

어느 정도 괜찮고 읽기 쉽습니다.

시아. 물을 마셔요???.

이전

위 내용은 Codewars - 초급 시리즈 #um of Numbers의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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