class Fraction{
private int numerator;
private int denominator;
Fraction(int num, int denom){
numerator=num;
denominator=denom;
}
private int gcd(int x, int y){ //유클리드 호제법을 이용한 최대공약수 구하기
return (y!=0) ? gcd(y,x%y) : x;
}
private Fraction reduce(Fraction f){
int divisor;
divisor = gcd(f.numerator, f.denominator);
f.numerator = divisor;
f.denominator = divisor;
return f;
}
public Fraction add(Fraction f){
numerator = numerator;
denominator = denominator;
return reduce(this);
}
public String toString(){
String form = numerator+"";
return form;
}
}
public class FractionTest{
static int readInt() throws java.io.IOException{
char ch;
int n=0;
while(!Character.isDigit(ch=(char)System.in.read()));
do{ n=n*10+(ch-'0');
ch=(char)System.in.read();
}while (Character.isDigit(ch));
return n;
}
public static void main(String[] args)throws java.io.IOException{
int a;
int b;
System.out.print("두수를 입력해주세요 : ");
a = readInt(); b = readInt();
Fraction f1 = new Fraction(a,b);
Fraction f2 = new Fraction(a,b);
f1 = f1.add(f2);
System.out.println("최대공약수는 " + f1 + "입니다");
}
}
'공부자료 > 자바' 카테고리의 다른 글
접근 수정자(Access modifier) (0) | 2010.12.29 |
---|---|
N값을 입력받아 N보다 작은 3의 배수를 출력 (0) | 2010.12.29 |
n값을 입력받아 1부터 1/n까지의 합을 구하는 프로그램 (1) | 2010.11.02 |
For문의 반복실행 (0) | 2010.11.02 |
For문과 While문 (0) | 2010.11.02 |
댓글