2013년 9월 1일 일요일

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

방법2 : 나누면서 최대 공약수 구하기

구로디지털단지역 오엔제이프로그래밍 실무교육센터  
(Java , Oracle, SQL, Oracle Tuning,BackUP&Recovery, ASP.NET, C#, 채용확정무상교육) 


순서(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);
  }
}




댓글 없음:

댓글 쓰기