728x90
안녕하세요!
이번에는 C++ 언어를 사용하여 두 정수의 최대 공약수를 구하는 예제를 살펴보겠습니다.
예제 코드
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
if (b == 0)
{
return a;
}
else
{
return gcd(b, a % b);
}
}
int main()
{
int num1, num2;
cout << "두 정수를 입력하세요: ";
cin >> num1 >> num2;
int result = gcd(num1, num2);
cout << num1 << "과(와) " << num2 << "의 최대 공약수는 " << result << "입니다." << endl;
return 0;
}
<코드 해석>
int gcd(int a, int b)
{
if (b == 0)
{
return a;
}
else
{
return gcd(b, a % b);
}
}
- 재귀적으로 두 정수의 최대 공약수를 계산하여 반환하는 함수이며 매개변수 a와 b는 계산할 두 정수입니다.
- if (b == 0)은 b가 0일 때, a를 반환합니다. 이는 최대 공약수의 종료 조건입니다.
- else 블록에서는 b와 a % b를 인자로 하여 gcd 함수를 재귀적으로 호출합니다. 이는 두 정수의 최대 공약수를 계산하는 과정입니다.
int main()
{
//내용 생략
}
- 프로그램의 시작점입니다.
int num1, num2;
- 사용자로부터 입력받을 두 정수를 저장할 변수를 선언합니다.
cout << "두 정수를 입력하세요: ";
cin >> num1 >> num2;
- "두 정수를 입력하세요: "라는 메시지를 출력하고, 사용자로부터 두 정수를 입력받아 num1과 num2 변수에 저장합니다.
int result = gcd(num1, num2);
- gcd 함수를 호출하여 두 정수의 최대 공약수를 계산합니다.
cout << num1 << "과(와) " << num2 << "의 최대 공약수는 " << result << "입니다." << endl;
- 입력받은 두 정수의 최대 공약수를 출력합니다.
이번 예제를 통해 두 정수의 최대 공약수를 구하는 방법을 알아보았습니다.
이번 글에서도 재귀함수가 사용되었는데, 재귀함수를 이해하기 힘드신분들은 아래 포스팅을 참고해 주세요!
[C++] 프로그래밍 기초 : 재귀함수
다음 글에서는 더 다양한 예제를 다루어보도록 하겠습니다.
감사합니다!
728x90
'[C++] > 콘솔 프로그래밍' 카테고리의 다른 글
[C++] 콘솔 프로그래밍 : 구조체 활용하기 (4) | 2023.06.08 |
---|---|
[C++] 콘솔 프로그래밍 : 숫자 맞추기 게임 (18) | 2023.06.07 |
[C++] 콘솔 프로그래밍 : 팩토리얼 계산하기 (8) | 2023.06.07 |
[C++] 콘솔 프로그래밍 : 문자열 뒤집기 (4) | 2023.06.07 |
[C++] 콘솔 프로그래밍: 소수 판별하기 (8) | 2023.06.07 |