recursion_01.최대공약수

Jun 27th 2020 by jyoon

문제

최대 공약수 구하기

해결 방법1

  • m >= n인 두 양의 정수 m과 n에 대해서 m이 n의 배수면 gcd(m,n)=n 이고
  • 그렇지 않으면 gcd(m, n) = gcd(n, m%n)이다.

CODE1

function gcd1(m, n) {
  if (m < n) {
    var temp = m
    m = n
    n = temp
  }
  if (m % n == 0) {
    return n
  } else {
    return gcd1(n, m % n)
  }
}

console.log(gcd1(2, 4))

해결 방법2

  • gcd(p, q) = p if q=0
  • gcd(p, q) = gcd otherwise

CODE2

//간소화
function gcd2(p, q) {
  if (q === 0) {
    return p
  } else {
    debugger
    return gcd2(q, p % q)
  }
}
console.log(gcd2(2, 4))