我试图在 C++ 中将两个多项式相乘。如果可能的话,我想保持这段代码的整体结构不变。我知道可能有一种“更快的方式”。这是我的多项式加法代码:
Polynomial Add(Polynomial &poly1, Polynomial &poly2)
{
vector<int> temp1;
if( poly1.Degree() > poly2.Degree() )
{
for( int i = 0 ; i<poly2.Degree() ; i++ )
{
temp1[i]=poly1.Coefficient(i)+poly2.Coefficient(i);
}
Polynomial temp0(temp1);
return temp0;
}
else if ( poly1.Degree() < poly2.Degree() )
{
for( int i = 0 ; i<poly1.Degree() ; i++ )
{
temp1[i]=poly1.Coefficient(i)+poly2.Coefficient(i);
}
Polynomial temp0(temp1);
return temp0;
}
}
这是我的 Degree() 成员函数定义:
int Polynomial::Degree() const
{
for(int i = 0; i < coefficient.size(); i++)
{
int last=0;
if(coefficient[i] != 0)
{
last = i;
}
return last;
}
}
这是我的多项式类声明:
class Polynomial {
public:
Polynomial();
Polynomial(vector<int> &coeffs);
int Degree() const;
int Coefficient(int k) const;
void print() const;
void constantMultiply(int x);
void Transform();
int nonzero() const;
private:
vector<int> coefficient;
};
现在,我要做的是使用这个加法函数将两个输入多项式相乘,我觉得我可以使用 Cohn's Classic Algebra 中的以下文献来做一些足够的思考。