#include<iostream>
#include<algorithm>
using namespace std;
int num[21]={1},ans=0,n;
void print(int len){
cout<<"Case "<<ans<<" : ";
for(int i=1;i<len;i++){
cout<<num[i]<<"+";
}
cout<<num[len];
cout<<endl;
}
void dfs(int step,int x){
if(x == 0){
ans++;
print(step-1);
return;
}
for(int i=num[x-1];i<=x;i++){
if(n-i >= 0){
num[step]=i;
n-=i;
dfs(step+1,n);
n+=i;
}
}
}
int main(){
cin>>n;
dfs(1,n);
cout<<"total : "<<ans;
return 0;
}
怎么内存就爆了!?