알맹이방
과제 3 본문
[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 |