有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么我的多项式类加法函数不起作用?

我创建了自己的动态数组,专门用于存储多项式。 在这里,我可以存储多项式,并在设置系数后打印它们,但不能执行加法函数。我已经创建了这个函数。但它没有提供任何产出

这是我的动态数组

public class DynamArray {
    int []a=new int[2];

    void check(int index) {
        while (index+1>a.length) {
            int b[]=new int[2*a.length];
            for(int i=0;i<a.length;i++) {
                b[i]=a[i];
            }
            a=b;
        }   
    }
    public void add(int degree,int coefficient) {
        check(degree);
        a[degree]=coefficient;
    }


}

这是我的多项式类

package classes_objects;

public class polynomial {
    DynamArray d1=new DynamArray();
    void setCoefficient(int degree,int coefficient) {
        d1.add(degree, coefficient);
    }
    void print() {
        for(int i=d1.a.length-1;i>=0;i--) {
            if(d1.a[i]!=0) {
                if(i==0) {
                    System.out.print(d1.a[0]);
                }
                else {
                    System.out.print(d1.a[i]+"x^"+i+" + ");
                }
            }
        }
    }
    void add(polynomial p1) {
        int maxlength=Math.max(d1.a.length, p1.d1.a.length);
        System.out.println(maxlength);
        d1.check(maxlength);
        for(int i=maxlength-1;i>=0;i--) {
            for(int j=p1.d1.a.length-1;i>=0;j--) {
                if(i==j){
                   d1.a[i]+=p1.d1.a[j];
            }}  
        }
    }
    public static polynomial add(polynomial p1,polynomial p2) {
        polynomial p=new polynomial();
        int maxlength=Math.max(p2.d1.a.length, p1.d1.a.length);
        p.d1.check(maxlength);
        for(int i=maxlength-1;i>=0;i--) {
            for(int j=p1.d1.a.length-1;i>=0;j--) {
                if(i==j) {
                    p.d1.a[i]=p2.d1.a[i]+p1.d1.a[j];
                }
            }   
        }
        return p;
    }

}

这是我的polynomialuse类,用来执行动作

public class polynomialUse {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        polynomial p1 = new polynomial();
        polynomial p2 = new polynomial();
        p1.setCoefficient(0, 5);
        p1.setCoefficient(2, 2);
        p1.setCoefficient(5, 5);
        p1.setCoefficient(9, 4);
        p2.setCoefficient(0, 3);
        p2.setCoefficient(3, 3);
        p2.setCoefficient(10, 100);
        p1.print();
        System.out.println();
        p2.print();
        p1.add(p2);
        p1.print();
        polynomial p=polynomial.add(p1,p2);
        p.print();
    }

}

    enter code here

共 (0) 个答案