真的很无助,一直比样例多输出一个数!!!
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int> ans;
void calc(int q, int start, vector<int>& ans) {
if (q==0) {
for (size_t i=0;i<ans.size();i++) {
cout<<ans[i];
if(i<ans.size()-1) cout<<"+";
}
cout<<endl;
return ;
}
for(int i=start;i<=q;i++) {
ans.push_back(i);
calc(q-i, i, ans);
ans.pop_back();
}
}
int main() {
cin>> n;
calc(n, 1, ans);
return 0;
}