2016. 10. 3. 16:36ㆍ프로그래밍/자바
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.
import java.util.Arrays;
public class TryHelloWorld {
public int aaa(int a, int b){
int mod = a % b;
if(a>b) {
while(mod>0) {
a = b;
b = mod;
mod = a % b;
}
}
return b;
}
public int bbb(int a, int b){
int mod = a % b;
if(a%b == 0){
b = b*(a/b);
} else if(a%b != 0) {
int min = aaa(a,b); // 최소공배수는 두 수(a,b)의 최대공약수로 나눈 몫과 같다
b = (a*b)/min;
}
return b;
}
public int[] gcdlcm(int a, int b) {
int[] answer = new int[2];
if (a == b) {
answer[0] = b;
answer[1] = b;
} else if (b > a) {
int tmp = a;
a = b;
b = tmp;
}
answer[0] = aaa(a,b); //최대공약수 구하기
answer[1] = bbb(a,b); //최소공배수 구하기
return answer;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
TryHelloWorld c = new TryHelloWorld();
System.out.println(Arrays.toString(c.gcdlcm(40, 26)));
}
}
'프로그래밍 > 자바' 카테고리의 다른 글
알고리즘 (최소공약수) (0) | 2016.10.02 |
---|---|
알고리즘(가운데 숫자 가져오기) (0) | 2016.10.02 |
알고리즘( 나누어 떨어지는 숫자 배열) (0) | 2016.10.02 |
알고리즘(문자열 내림차순) (0) | 2016.10.02 |
알고리즘(*삼각형 출력하기) (0) | 2016.10.02 |