#include<bits/stdc++.h>
using namespace std;
int a[100001];
int n;
void dfs(int tot,int x){
int i;
if(tot>n||x>n)
return;
if(tot==n){
for(i=1;i<x-1;i++)
cout<<a[i]<<'+';
cout<<a[x-1]<<endl;
return;
}
for(i=a[x-1];i<n;i++){
a[x]=i;
dfs(tot+i,x+1);
}
return;
}
int main()
{
scanf("%d",&n);
a[0]=1;
dfs(0,1);
return 0;
}
哪里错了?为什么样例第一行1+1+1+1+1+1+1不能输出