帮忙看看
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int path[1000];
int n;
void dfs(int pre){
int ans=0;
for(int i=0;i<pre;i++){
ans+=path[i];
}
bool a=true;
for(int i=0;i<pre-1;i++){
if(path[i]>path[i+1]){
a=false;
}
}
if(ans==n&&a){
cout <<path[0];
for(int i=1;i<pre;i++){
cout <<'+'<<path[i];
}
cout <<endl;
}
for(int i=1;i<n;i++){
path[pre]=i;
dfs(pre+1);
}
}
int main(){
cin >>n;
dfs(0);
return 0;
}