일반 학습/코딩 테스트
[JavaScript] 재귀함수로 최대공약수 최소공배수 찾기
StelthPark
2022. 3. 3. 17:02
function solution(a, b) {
var gcd = calc_gcd(a, b);
var lcm = (a * b) / gcd;
return [gcd, lcm];
}
function calc_gcd(a, b) {
if (b == 0) return a;
return a > b ? calc_gcd(b, a % b) : calc_gcd(a, b % a);
}
a>b 가정에서
a를 b로 나눠진다면 b가 최대 공약수가 되고
최소공배수는 a 곱하기 b를 최대공약수로 나누면 된다.
calc_gcd에서 a와 b를 받는다.
a>b 가 사실이라면 재귀함수를 통해 b와 a와b를 나눈 나머지(r)를 넣는다.
다시 calc_gcd 함수로 들어와 b=>(a와b를 나눈게) 0이라면 b인 a를 리턴한다.