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 |