[c언어] 최대공약수 구하기 (재귀함수)
2020. 12. 21. 16:14ㆍComputer Science/C
두 정수의 최대공약수를 구하는 함수를 재귀함수를 이용하여 작성한다.
*논리
큰수 x와 작은 수 y를 매개변수로 받아서 y가 0이면 x를 반환하고,
0이 아니면 작은 수 y와 (큰수 % 작은수)를 매개변수로 자기 자신 함수를 재귀호출한다.
#include <stdio.h>
int gcd(int x, int y)
{
if (y == 0)
return x;
else
return gcd(y, (x % y));
}
int main(void)
{
int a, b, big, small;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
if (a < b) {
big = b;
small = a;
}
else {
big = a;
small = b;
}
printf("%d와 %d의 최대공약수는 %d\n", a, b, gcd(big, small));
}
결과

'Computer Science > C' 카테고리의 다른 글
[c언어] 행렬 합 (0) | 2020.12.21 |
---|---|
[c언어] 2차원 배열 90도 회전 (0) | 2020.12.21 |
[c언어] 피보나치 수열 (재귀함수) (0) | 2020.12.21 |
[c언어] 2차원 배열 각 행, 각 열의 합 (0) | 2020.12.21 |
[c언어] 2차원 배열 각 열의 합 (0) | 2020.12.21 |