문제
- 두 수의 최대 공약수를 구하시오.
- 배열, for, if 사용
보완할 점
- 좀 더 코드를 간결하게 할 수 있을 것 같은데... 고민해서 수정하기
소스코드
import java.util.Arrays;
public class Maxnumber {
public static void main(String[] args) {
// 최대 공약수 구하기
int a = 12;
int b = 18;
int[] a_arr = new int[a];
int[] b_arr = new int[b];
for(int i=1; i<=a; i++) { //1~12
for(int j=i+1; j<=a; j++) { //2~12
if(i*j == a) { //곱해서 12가 나오면~
a_arr[i-1] = i;
a_arr[j-1] = j;
break;
}
}
}
for(int i=1; i<=b; i++) { //1~12
for(int j=i+1; j<=b; j++) { //2~12
if(i*j == b) { //곱해서 12가 나오면~
b_arr[i-1] = i;
b_arr[j-1] = j;
break;
}
}
}
System.out.println(Arrays.toString(a_arr));
System.out.println(Arrays.toString(b_arr));
int[] c_arr = new int[a+b];
for (int i = 0; i < a_arr.length; i++) {
for (int j = 0; j < b_arr.length; j++) {
if(a_arr[i] == b_arr[j]) { //같은 값이 나오면
c_arr[i] = b_arr[j];
}
}
}
int max = 0;
for(int i=0; i < c_arr.length; i++) {
if(max < c_arr[i]) {
max = c_arr[i];
}
}
System.out.println("최대 공약수 >> " + max);
}
}
'알고리즘 문제연습 > 기초 알고리즘' 카테고리의 다른 글
[009] 팩토리얼 알고리즘 (0) | 2021.05.19 |
---|---|
[008] 소수 판별 알고리즘 (0) | 2021.05.17 |
[006] 대소문자 변환 (대문자->소문자, 소문자->대문자) (0) | 2021.05.13 |
[005] 간단한 계산기(사칙연산 기능 구현) (0) | 2021.05.13 |
[004] 10진수를 2진수로 변환하기 (0) | 2021.05.13 |
댓글