728x90
class Fraction { // chp5_6_3
	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 = f.numerator / divisor;
		f.denominator = f.denominator / divisor;
		return f;
	}
	public Fraction add(Fraction f) {   // 덧셈
		numerator = numerator * f.denominator + f.numerator * denominator;
		denominator = denominator * f.denominator;
		return reduce(this);
	}
	public Fraction sub(Fraction f) {   //뺄셈
		numerator = numerator * f.denominator - f.numerator * denominator;
		denominator = denominator * f.denominator;
		return reduce(this);
	}	
	public Fraction mul(Fraction f) {   // 곱셈
		numerator = numerator * f.numerator;
		denominator = denominator * f.denominator;
		return reduce(this);
	}
	public Fraction div(Fraction f) {   //나눗셈
		numerator = numerator * f.denominator;
		denominator = denominator * f.numerator;
		return reduce(this);
	}
	public String toString() {
		String form = numerator + "/" + denominator;
		return form;
	}
}
public class chp5_6_3{
	public static void main(String[] args) {
		Fraction f1 = new Fraction(1,2);
		Fraction f2 = new Fraction(3,4);
		Fraction f3 = new Fraction(5,6);
		Fraction f4 = new Fraction(7,8);
		
		f1 = f1.add(f2);
		f2 = f2.sub(f3);
		f3 = f3.mul(f4);
		f4 = f4.div(f1);
		
		System.out.println("f1 = " + f1 + ", f2 = " + f2 + 
				", f3 = " + f3 + ", f4 = " + f4);
	}
}

반응형

'전.java' 카테고리의 다른 글

스택 클래스 (Stack)  (0) 2021.02.08
복소수 클래스 (Complex)  (0) 2021.02.08
거스름돈을 동전의 개수가 최소가 되도록 계산하는 자바 프로그램  (0) 2021.02.07
숫자 찍기  (0) 2021.02.07
구구단  (0) 2021.02.07
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기