#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e7 + 10;
int n,s[10];
void shuchu(int a)
{
for(int i=0;i<a;i++)
{
if(i==0) cout<<s[i];
else cout<<"+"<<s[i];
}
cout<<endl;
return;
}
void dfs(int x,int y,int z)
{
if(x==n) return;
if(y==n){
shuchu(z);
return;
}
for(int i=x;i<=n-y;i++)
{
s[z]=i;
dfs(i,y+i,z+1);
}
}
int main()
{
cin>>n;
dfs(1,0,0);
return 0;
}
P2404 自然数的拆分问题(典型的dfs)
queenlll2025-08-19 10:13