GaGe

과제 3 본문

SISS (2017-2018)/겨울방학 C언어 과제

과제 3

Sorrel 2018. 1. 20. 22:24

[C언어 문제]
출제자 : 이*연
사용자에게 정수 2개를 입력받아 최대공약수를 찾는 함수 gcd를 작성하시오.

*재귀호출과 반복문 두가지 방법으로 둘다 구현하기

 

 

 

#include <stdio.h>
int gcd(int num1,int num2){ //반복문 이용한 함수

 

int i,j;
int result;

if(num1<num2)//최소공약수는 두 수 중 작은 것보다 크지 않는다
    j=num1;

else if(num2<num1)
    j=num2;

 

for(i=1;i<=j;i++){
    if(num1%i==0 && num2%i==0)
         result = i;

}
return result;

}

 

int gcd2(int a, int b){ //두 수를 받는다 //재귀 이용한 함수
      int num1, num2;

if(a>b){
    num1 =a;
    num2=b;}
else if(a<b){
    num1 =b;
    num2=a;
 }
 

if(num1==num2)
    return num1;

if(num2==0) //num2가 0이면 
    return num1; //num1(=최대공약수)을 리턴

else
    return gcd2(num2, num1%num2); //다시 반복

}

 

main(){
 int hwang, bae;


 printf("두 정수를 입력하시오.\n");
 scanf("%d %d", &hwang, &bae);

 printf("최대공약수 : %d\n", gcd(hwang, bae));
 printf("최대공약수 : %d\n", gcd2(hwang, bae));
}

 

 

<실행 화면>

'SISS (2017-2018) > 겨울방학 C언어 과제' 카테고리의 다른 글

과제 4  (0) 2018.02.10
과제 2  (0) 2018.01.10
과제1  (0) 2018.01.10
Comments