#include <bits/stdc++.h>
using namespace std;
int s[100]={1},n;
int print(int t)
{
for(int i=1;i<=t-1;i++)
cout<<s[i]<<"+";
cout<<s[t]<<endl;
}
void dfs(int sum,int t){
for(int i=s[t-1];i<=sum;i++){
if(i<n){
s[t]=i;
sum-=i;
if(sum==0)print(t);
else dfs(sum,t+1);
sum+=i;}
}
}
int main()
{
cin>>n;
dfs(n,1);
return 0;
}
作业:自然数的拆分问题
最新推荐文章于 2024-07-12 16:34:36 发布