Arrays 使用项数组添加多项式

Arrays 使用项数组添加多项式,arrays,Arrays,我试图创建一个程序,可以添加存储在数组中的两个多项式。多项式的每个项(系数和指数)都存储为数组中的一个索引(我有一个这样做的项类)。当我调用add方法时,并不总是合并具有相同指数的系数 如果指数相同,我的最后一个条件将两个系数相加。在已经指定了一个项之后,如何创建一个通过多项式的循环?也许有更有效的方法 public Polynomial add(Polynomial p1, Polynomial p2) { int i = 0; int j = 0; int newin

我试图创建一个程序,可以添加存储在数组中的两个多项式。多项式的每个项(系数和指数)都存储为数组中的一个索引(我有一个这样做的项类)。当我调用add方法时,并不总是合并具有相同指数的系数

如果指数相同,我的最后一个条件将两个系数相加。在已经指定了一个项之后,如何创建一个通过多项式的循环?也许有更有效的方法

public Polynomial add(Polynomial p1, Polynomial p2)
{
    int i = 0;
    int j = 0;
    int newin = 0; //index or location of new terms being stored for Polynomial p3
    Polynomial p3 = new Polynomial();


    while (i<p1.TermLength || j<p2.TermLength)
    {


           if (i==p1.TermLength)
            {
                p3.poly[newin].setCoeff(p2.poly[j].getCoeff());
                p3.poly[newin].setExpo(p2.poly[j].getExpo());
                j++;    // j is increased whenever a term from Poly2 has been utilized
           }

         else if (j==p2.TermLength)
            {
                p3.poly[newin].setCoeff(p1.poly[i].getCoeff());
                p3.poly[newin].setExpo(p1.poly[i].getExpo());
                i++;    // i is increased by 1 whenever a term from Poly1 has been utilized
           }

         else if (p1.poly[i].getExpo()>p2.poly[j].getExpo())
            {
               p3.poly[newin].setCoeff(p1.poly[i].getCoeff());
                p3.poly[newin].setExpo(p1.poly[i].getExpo());
                i++;
            }

         else if (p1.poly[i].getExpo()<p2.poly[j].getExpo())
            {
                p3.poly[newin].setCoeff(p2.poly[j].getCoeff());
                p3.poly[newin].setExpo(p2.poly[j].getExpo());
                j++;
            }                             
         else if (p1.poly[i].getExpo() == p2.poly[j].getExpo())
         {
            p3.poly[newin].setExpo(p1.poly[i].getExpo());
            p3.poly[newin].setCoeff(p1.poly[i].getCoeff() + p2.poly[j].getCoeff());
            i++;
            j++;
         }  

         newin++;


    }


    p3.TermLength = p3.poly.length;

    return p3;
}
公共多项式加法(多项式p1,多项式p2)
{
int i=0;
int j=0;
int newin=0;//为多项式p3存储的新术语的索引或位置
多项式p3=新多项式();

虽然(我认为前两个
if-else
应该分开,后三个
if-else
应该分开,因为这两个区块的条件完全不同。我不认为这有什么帮助?是的……你能举例说明你期望的答案和你得到的答案吗。同时提供ord的安排多项式的er…是
X^2+2X+1
还是
1+2X+X^2
还是未排序…这将使问题易于理解。如果到达多项式
p1
的末尾,那么多项式
p2
将不会被代码追加