数组:
c1存"第一个"括号里 项系数
c2存"前两个"括号里 项系数。
后面每个括号里项系数均为1,
前面的..系数可能不为1,因为一直在更新
#include<bits/stdc++.h>
using namespace std ;
const int maxn=125;
int n,c1[maxn],c2[maxn];
int main(){
while(cin>>n){
for(int i=0;i<=n;i++){
c1[i]=0;c2[i]=0;
}
for(int i=0;i<=n;i++){
c1[i]=1;
}
for(int i=2;i<=n;i++){//(若不是拆分,是合成)这句的n具看题目有几种类,即有几个括号
for(int j=0;j<=n;j++)
for(int k=0;k+j<=n;k+=i){//+=几,看括号的类型,可变为i^2,数组等等
c2[k+j]+=c1[j];
}
for(int j=0;j<=n;j++){
c1[j]=c2[j];
c2[j]=0;
}
}
cout<<c1[n]<<endl;
}
}