Задача арифметических операций с объектами - PullRequest
0 голосов
/ 08 января 2019

Я проверил много вопросов stackOverflow об операциях с объектами, но я не нашел решения.

Моя задача - умножить и разделить два объекта с помощью этих конструкторов:

public class Fraction {
    private int denom;
    private int counter;

    public Fraction() {
        this.counter = 0;
        this.denom = 1;
    }

    public Fraction(int counter) {
        this.counter = counter;
        this.denom = 1;
    }

    public Fraction(int counter, int denom) {
            this.counter = counter;
        if (denom == 0) {
            this.denom = 1;
        } else
            this.denom = denom;
    }
}

Что будет внутри методов «умножения» и «деления»?

public Fraction multiply(Fraction other) {

}

public Fraction divide(Fraction other) {

}

если это то, что мне нужно использовать:

Fraction frac1 = new Fraction (2);
Fraction frac2 = new TortSzam(3,4);
fracResult = frac1.divide(frac2);

и результат: 2.6666666666666665

Что я пробовал в других вопросах StackOverflow:

public Fraction multiply(Fraction other) {
        final Fraction multi = this;
        BigInteger result = new BigInteger;
        result.multiply(other);
}

Но не сработало.

Заранее спасибо.

1 Ответ

0 голосов
/ 08 января 2019

Умножение двух дробей означает просто умножение числителей, а затем деление этого произведения на умножение знаменателей. Так что вы можете попробовать:

public Fraction multiply(Fraction other) {
    int counter = other.getCounter() * this.counter;
    int denim = other.getDenominator() * this.denom;

    return new Fraction(counter, denom);
}

Я оставлю реализацию деления на ваше усмотрение. Как подсказка, код будет очень похож на приведенный выше, за исключением того, что вы будете использовать инверсию одного (но не обоих) из двух входов дроби.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...