2013년 9월 2일 월요일

유클리드 호제법(나누기이용) 자바

ㅍ나누면서 최대 공약수 구하기


순서(18과 24의 최대공약수 구하기)
1. 24를 18로 나눈 나머지인 6이 0인가?
2. 0이 아니면 나머지인 6과 작은수(제수, 18)를 두수로 하여…
3. 18과6을 나눈 나머지가 0인가 조사… 0이면 이때의 제수인 6이 최대공약수 이다.

public class Gcd2 {
int  gcd(int v1, int v2) {
int tmp;
while(v1 != 0) { //나머지가 0이 아닌한 반복
if (v1 < v2) {
tmp = v1;
v1 = v2;
v2 = tmp;
}
          v1 = v1 % v2;  //v1은 큰수, v2는 작은수, 작은수는 다시 사용된다.
}
return v2;

}
public static void main(String[] args) {
    if (args.length!=2) {
              System.out.println("최대공약수를 구하기 위한 두수 입력... ");
System.out.println("Usage : java Gcd1 number number ");
System.exit(1);
  }

  int value1 = Integer.parseInt(args[0]);
  int value2 = Integer.parseInt(args[1]);
  Gcd1 o = new Gcd1();
  int g = o.gcd(value1, value2);
  System.out.println(value1 + "과  " + value2 + "의 최대공약수는 : " + g);
  }
}


오라클자바커뮤니티 추천 실무강좌

댓글 없음:

댓글 쓰기