提交时间:2023-08-24 09:27:55

运行 ID: 99862

#include<bits/stdc++.h> using namespace std; int n; int num=0; vector<int> path; void dfs(int sum,int tmp,int Min) { if(sum==n) { if(path.size()==1) { return ; } num++; cout<<n; cout<<"="; for(int i=0;i<path.size()-1;i++) { cout<<path[i]; cout<<"+"; } cout<<path[path.size()-1]; cout<<endl; return ; } if(sum>n) { return ; } for(int i=Min;i<=n-sum;i++) { path.push_back(i); dfs(sum+i,tmp,i); path.pop_back(); } return ; } int main() { cin>>n; dfs(0,0,1); cout<<num; return 0; }