Page 170 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 170

로 구합니다. 이 알고리즘을 유클리드 호제법(Euclidean method of mutual division)이라고 합

                   니다. 다음의 실습 5-2는 유클리드 호제법에 의해 두 정수의 최대공약수를 구하는 프로그램
                   입니다.


                      실습 5-2                                                  •완성 파일 chap05/euclid.c
                     01  /* 유클리드 호제법에 의해 최대공약수를 구합니다. */                        실행 결과
                     02  #include <stdio.h>
                                                                          두 정수의 최대공약수를 구합
                     03
                                                                          니다.
                     04  /*--- 정수 x, y의 최대공약수를 반환 ---*/                   정수를 입력하세요 : 22
                     05  int gcd(int x, int y)                            정수를 입력하세요 : 8
                     06  {                                                최대공약수는 2입니다.
                     07    if(y == 0)
                     08      return x;
                     09    else
                     10      return gcd(y, x % y);
                     11  }
                     12
                     13  int main(void)
                     14  {
                     15    int x, y;
                     16    puts("두 정수의 최대공약수를 구합니다.");
                     17    printf("정수를 입력하세요 : ");
                     18    scanf("%d", &x);
                     19    printf("정수를 입력하세요 : ");
                     20    scanf("%d", &y);
                     21    printf("최대공약수는 %d입니다.\n", gcd(x, y));
                     22
                     23    return 0;
                     24  }




                             Q1  재귀 함수 호출을 사용하지 않고 factorial 함수를 작성하세요.
                    연습
                    문제
                             Q2  재귀 함수 호출을 사용하지 않고 gcd 함수를 작성하세요.


                             Q3  배열 a의 모든 요소의 최대공약수를 구하는 다음 함수를 작성하세요.


                             int gcd_array(const int a[], int n);





                   170   C 알고리즘
   165   166   167   168   169   170   171   172   173   174   175