C++ 유클리드 호제법을 이용하여 최대공약수/최소공배수 구하기.
[ 코 드 ]
#include <iostream>
using namespace std;
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
int main() {
cout << gcd(25, 45) << "\n";
cout << 15*45/gcd(15, 45) << "\n";
return 0;
}
12라인 > gcd 함수는 회귀 함수로서 두 인수 a와 b를 주면 a와 b의 최대공약수를 리턴한다.
+) "b ? ㄱ : ㄴ" 은 삼항 연산자로 b가 참이면 ㄱ을 실행하고 거짓이면 ㄴ을 실행한다.
13라인 > 최소 공배수 = a*b / 최대공약수; 이다.
[ 결 과 ]
'C++ > Algorithm' 카테고리의 다른 글
C++ 제곱근 구하기, n승 값 구하기 : sqrt(), pow() (0) | 2020.01.30 |
---|---|
C++ 소수 찾기, 검사하기 [에라토스테네스의 체] (0) | 2020.01.29 |
C++ #include <bits/stdc++.h> 헤더 사용하기 (0) | 2020.01.28 |
C++ 조합(Combination) 회귀를 이용 (2) | 2020.01.23 |
C++ 순열(permutation) 회귀를 이용 (0) | 2020.01.22 |