【问题标题】:Adding polynomials using recursion使用递归添加多项式
【发布时间】:2011-03-15 17:03:04
【问题描述】:

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

但同样,这不是递归的。

【问题讨论】:

    标签: java recursion polynomial-math


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      --不过,除了 lisp 之外,我几乎从未见过任何东西进行递归加法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2011-02-20
        相关资源
        最近更新 更多