提交时间:2023-08-26 17:26:57

运行 ID: 100459

#include<bits/stdc++.h> using namespace std; int a[100],n,m; int cnt = 0; void dfs(int cur,int sum) { if(sum==n) { cout<<n<<"="; for(int i=1; i<=cur-1; i++) { cout<<a[i]; if(i!=cur-1)cout<<"+"; } cout<<endl; cnt++; return ; } for(int i=a[cur-1];i<=n-1; i++){ if(sum+i<=n) { a[cur]=i; dfs(cur+1,sum+i); } } } int main() { cin>>n; a[0] = 1; dfs(1,0); cout<<cnt<<endl; return 0; }