Добавление многочленов с помощью рекурсии - PullRequest
0 голосов
/ 15 марта 2011

Мне нужно сделать рекурсивный метод Polynomial add (Полином p), который добавит это к p с помощью рекурсии. Я читал, что в Java есть метод add (Polynomial p), но это не рекурсивно.

Моя лучшая попытка до сих пор была такой:

public class Polynomial {
int[] coef;
int degree;

public int deeg() {
int d = 0;
for (int r = 0; r < coef.length; r++)
if (coef[i] != 0) d = r;
return d;
}

public Polynomial addition(Polynomial p) {
Polynomial apple = this;
Polynomial orange = new Polynomial(0, Math.max(apple.degree, orange.degree));
for (int r = 0; r <= apple.degree; i++) orange.coef[r] += apple.coef[r];
for (int r = 0; r <= p.degree; r++) orange.coef[r] += p.coef[i];
orange.degree = orange.deeg();
return orange;
}
}

Но опять же, это не рекурсивно.

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

Я думаю, что они, вероятно, хотят, чтобы вы сделали что-то, где вы добавляете члены x ^ 0 двух полиномов и добавляете это к x * (sum (poly1 / x, poly2 / x)) ... I Я знаю, что / x не работает, но обычно это рекурсивное добавление.

- Я почти никогда не видел ничего, кроме lisp, делающего рекурсивное добавление.

0 голосов
/ 15 марта 2011

Чтобы получить рекурсию, вам нужно вызвать метод внутри этого метода, а не создавать класс в этом классе:

public void add(List numbers) {
    // do stuff
    if (condition)
        add(numbers);
}
...