0

我需要创建一个递归方法 Polynomial add(Polynomial 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;
}
}

但同样,这不是递归的。

4

2 回答 2

0

为了获得递归,你需要在这个方法中调用一个方法,而不是在这个类中创建一个类:

public void add(List numbers) {
    // do stuff
    if (condition)
        add(numbers);
}
于 2011-03-15T17:09:57.857 回答
0

我在想他们可能希望您做一些事情,将两个多项式的 x^0 项相加,并将其附加到 x*(sum(poly1/x,poly2/x))... 我知道/x 不起作用,但这通常是递归加法的完成方式。

- 我几乎从未见过除了 lisp 之外的任何东西做递归加法。

于 2011-03-15T17:12:46.847 回答