프로그래밍언어 포인터 연습문제
- 최초 등록일
- 2015.10.29
- 최종 저작일
- 2014.09
- 5페이지/ 한컴오피스
- 가격 1,000원
목차
없음
본문내용
3. 두 개의 정수를 받아서 최소공배수와 최대공약수를 구하여 반환하는 함수를 작성하고 테스트하여 보자. 최대공약수란 두 개의 정수의 공통 약수 중에서 가장 큰 수를 의미한다. 최대공약수를 구하려면 정교한 알고리즘이 필요하다.
① 두 수 가운데 큰 수를 x, 작은 수를 y라고 한다.
② y가 0이면 최대공약수는 x와 같고 알고리즘을 종료한다.
③ r <- x%y
④ x <- y
⑤ y <- r
⑥ ②로 돌아간다.
최소공배수는 원래의 두 수를 곱한 값을 최대공약수로 나누면 얻을 수 있다.
<프로그램 소스>
GCD(최대공약수)와 LCM(최소공배수)를 계산하는 함수를 선언한다.
출력해야 하는 값이 두 개 이므로 변수 두 개를 포인터로 선언하고, &G,&L로 받아 G,L을 출력한다.
<프로그램 소스>
주어진 것과 같이, 유클리드의 알고리즘을 이용하여 GCD를 구한다.
x가 y보다 큰 수여야 하므로 y>=x 일 경우 x와 y를 바꾸는 알고리즘을 추가하였다.
참고 자료
없음