Develop/Ps22 BOJ(2609).cpp 유클리드 호제법 유클리드 알고리즘(Euclidean algorithm)은 2개의 자연수의 최대공약수(Greatest Common Divisor) 를 구하는 알고리즘이다. 비교대상의 두 개의 자연수 a와 b에서 a를 b로 나눈 나머지를 r이라고 했을때 GCD(a, b) = GCD(b, r)과 같고 "r이 0이면 그때 b가 최대공약수이다."(단 a>b) 라는 원리를 활용한 알고리즘입니다. ex) GCD(24,18) -> GCD(18,6) -> GCD(6,0) : 최대공약수 = 6 재귀 함수 활용 int GCD(int a, int b) { if (a > b) { if (b == 0) { return a; } else { return GCD(b, a % b); } } } 반복문 활용 int GCD(int a, int b) { .. 2023. 4. 5. BOJ(1009).cpp 모듈러 연산(나머지 연산) 문제를 풀다 정수형 버퍼 오버플로우(Buffer Overflow)가 발생하여 해결방법을 찾는도중 모듈러 연산(나머지 연산)이 눈에 들어왔다. 모듈러 연산은 간단하게 a mod b = ? a를 b로 나눈 나머지를 구하는 것이다. #include #include using namespace std; int main() { int T; cin >> T; for (int i = 0; i > a >> b; for (int i = 1; i 2023. 3. 28. 이전 1 2 3 다음