典型的母函数题目,所以无话可讲。直接套用公式求解即可。

//#include <fstream>
#include <iostream>
using namespace std;

int main()
{    
    //fstream cin("Ignatius and the Princess III.txt");
    unsigned num;
    while(cin>>num)
    {
        if(num==0)
            break;
        unsigned* coins=new unsigned[num+2];
        for (unsigned i=0;i<num+2;i++)
            coins[i]=1;
        unsigned* assist=new unsigned[num+2];
        memset(assist,0,sizeof(unsigned)*(2+num));
        for(unsigned i=2;i<=num;i++)
        {
            for(unsigned j=0;j<=num;j++)
                for(unsigned k=0;k+j<=num;k+=i)
                    assist[k+j]+=coins[j];
            for(unsigned j=0;j<=num;j++)
            {
                coins[j]=assist[j];
                assist[j]=0;
            }
        }
        cout<<coins[num]<<endl;
    }
    return 0;
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
猜你喜欢
  • 2021-06-22
  • 2021-07-20
相关资源
相似解决方案