/// 本次计算的是f(x)=(1+x^1+x^2+x^3+········)*(1+x^2+x^4+x^6+·····)*(1+x^3+x^6····)*········
#include<iostream>
using namespace std;
#define N 30 //N表示有多少个多项式相乘
#define M 51 //M表示只需要x的次数小于M的那些项
int main()
{
int F[2][M]={0};
for(int j=0;j<M;++j)
F[0][j]=1; //这一步,我把第一组的多项式系数全部存到了F[0][j]中
memset(F[1],0,M*4);
for(int i=2;i<=N;++i)//以多项式的组数为最外层循环,从第二组多项式开始,计算该组多项式与前面的多项式乘积
{
for(int k=0;k*i<M;++k)
for(int j=0;j+k*i<M;++j)
F[1][k*i+j]=F[0][j]+F[1][k*i+j];
for(int s=0;s<M;++s)
{
F[0][s]=F[1][s];
F[1][s]=0;
}
}
return 0;
}
多用于处理母函数问题。。。如果有问题请指出。。。欢迎相互讨论。。