暂时没看出来,你看一下我的吧
```c
#include<bits/stdc++.h>
using namespace std;
int ans[105],sum = 0,n;
void dfs(int x){
if(sum == n){
cout<<ans[1];
for(int i = 2;i <= x-1;i++){
cout<<"+"<<ans[i];
}
cout<<endl;
return ;
}
for(int i = ans[x-1];i <= n - sum;i++){
if(i == 0){
continue;
}
if(i == n){
continue;
}
ans[x] = i;
sum += i;
dfs(x+1);
ans[x] = 0;
sum -= i;
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}
```
by JGBY00 @ 2023-07-23 20:20:49
。。。康康我的吧
```
#include <bits/stdc++.h>
using namespace std;
int n,m;
int A[101010];
void dfs(int now,int sum,int cnt){
if(sum==n){
for (int i=1;i<cnt;i++)cout<<A[i]<<"+";
cout<<A[cnt]<<"\n";
m++;
}
if(now>n/2+1)return ;
for (int i=now;i<=n;i++){
if(sum+i<=n){
A[cnt+1]=i;
dfs(i,sum+i,cnt+1);
}
}
}
int main(){
cin>>n;
for (int i=1;i<=n/2;i++){
A[1]=i;
dfs(i,i,1);
}
// cout<<"There are "<<m<<" ways to add numbers together that make the number "<<n<<"\n";
return 0;
}
```
by BensonChen @ 2023-10-13 08:41:23