재귀적 최대 공약수 (GCD) 계산

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 를 사용하여 두 개 이상의 숫자/배열 간의 최대 공약수 (GCD, Greatest Common Divisor) 를 구하는 개념을 탐구합니다. 이 랩에서는 재귀 (recursion) 를 사용하여 GCD 를 계산하는 함수를 소개하며, 0 을 기저 사례 (base case) 로 사용합니다. 이 랩을 마치면, 자신의 JavaScript 프로젝트에서 이 함수를 구현하는 방법에 대한 확실한 이해를 얻게 될 것입니다.

최대 공약수 계산 방법

코드를 사용하여 두 개 이상의 숫자/배열 간의 최대 공약수 (GCD) 를 계산하려면 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.

  2. 다음 코드를 사용합니다.

const gcd = (...arr) => {
  const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
  return [...arr].reduce((a, b) => _gcd(a, b));
};
  1. gcd 함수는 재귀 (recursion) 를 사용합니다.

  2. 기저 사례 (base case) 는 y0과 같을 때입니다. 이 경우 함수는 x를 반환합니다.

  3. 그렇지 않으면 함수는 yx / y의 나머지 (remainder) 의 GCD 를 반환합니다.

  4. 함수를 테스트하려면 다음 코드를 사용합니다.

gcd(8, 36); // 4
gcd(...[12, 8, 32]); // 4

요약

축하합니다! 최대 공약수 (Greatest Common Divisor) 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.