母函数例题 可做模版 附注释

来源:互联网 发布:pc机装mac os 编辑:程序博客网 时间:2024/05/18 22:14
/*求n有几种不同的和例如:  4 = 4;  4 = 3 + 1;  4 = 2 + 2;  4 = 2 + 1 + 1;  4 = 1 + 1 + 1 + 1;  共5种*/#include <iostream>using namespace std;const int lmax=10000;int c1[lmax+1],c2[lmax+1];int main(){    int n,i,j,k;    while (cin>>n)    {        for (i=0; i<=n; i++)//把质量从0到n的所有砝码都初始化为1.        {            c1[i]=1;            c2[i]=0;        }        for (i=2; i<=n; i++)//遍历第i个表达式        {            for (j=0; j<=n; j++)//这里j就是前面i個表達式累乘的表達式里第j个变量                for (k=0; k+j<=n; k+=i)//k表示的是第j个指数,所以k每次增i(因为第i个表达式的增量是i                {                    c2[j+k]+=c1[j];                }            for (j=0; j<=n; j++)//把c2的值赋给c1,而把c2初始化为0,因为c2每次是从一个表达式中开始的            {                c1[j]=c2[j];                c2[j]=0;            }        }        cout<<c1[n]<<endl;    }    return 0;}

0 0