2013년 9월 1일 일요일

자바 최대공약수 유클리드 호제법(빼기이용)

자바 최대공약수 방법1 : 빼면서 최대 공약수 구하기 

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

순서(18과 24의 최대공약수 구하기)
1. 18과 24의 차이인 6이 두수중 작은수와 같은지 비교
2. 같지않으면 6과 작은수18을 두수로 하여… 차이인 12와 작은수인 6을 비교
3. 같지 안으면 12와 작은수인 6을 두수로 하여… 차이인 6과 직은수인 6을 비교하여 같으면 이 6이 최대공약수

public class Gcd1 {
//v1은 큰수, v2는 작은수
int  gcd(int v1, int v2) {
int tmp;
while(v1 != 0) {
if (v1 < v2) {
tmp = v1;
v1 = v2;
v2 = tmp;
}
//두수의 차, 차이가 0 일때 작은값이 최대 대공약수
v1 = 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);
}
}




댓글 없음:

댓글 쓰기