将任意整数N分解成多个互不相同的正整数之和,并打印所有可能的组合方式 例: 5 = 1+4 = 2+3 6=1+2+3=2+4=1+5 #include <iostream> #include <vector> #include <iterator> using namespace std; vector<int> s; void f(int N, int m) { for (int k=m; k<N-k; ++k) { //out m, N-m copy(s.begin(),s.end(),ostream_iterator<int>(cout,",")); cout<<k<<','<<N-k<<endl; s.push_back(k); f(N-k,k+1); s.pop_back(); } } int main() { int N; cin>>N; f(N,1); system("pause"); return 0; }