#include<bits/stdc++.h>
using namespace std;
const int N = 10000;
int n;
int num[N] = {1};
void print(int x){
for(int i = 1;i < x;i++)cout<<num[i]<<"+";
cout<<num[x]<<endl;
}
int DFS(int x,int sum){
for(int i = num[x - 1];i <= sum;i++)
if(i < n){
num[x] = i;
sum-= i;
if(!sum)print(x);
else DFS(x + 1,sum);
sum += i;
}
}
int main(){
cin>>n;
DFS(1,n);
return 0;
}
P2404 自然数的拆分问题(洛谷 数据型DFS)
最新推荐文章于 2024-03-20 12:49:17 发布