假设把n拆成 1、2、3、4 的和,输出拆分数
#include<iostream> using namespace std; int main(){ int n; //要拆分的数 int c[100],c1[100]; while(cin>>n){ if(n<0) break; memset(c,0,sizeof(c)); memset(c1,0,sizeof(c1)); for(int i=0;i<=n;i++){ // c[i]=1; } for(int i=2;i<=4;i++){ for(int j=0;j<=n;j++) for(int k=0;k+j<=n&&k<=n;k+=i) c1[k+j]+=c[j]; for(int j=0;j<=n;j++){ c[j]=c1[j]; c1[j]=0; } } cout<<c[n]<<endl; } return 0; }
原文:http://www.cnblogs.com/wintersong/p/4930700.html