- #include <stdio.h>
- #include <vector>
- using namespace std;
- void print_vector(vector<int> & v){
- vector<int>::iterator ii;
- for(ii = v.begin(); ii != v.end(); ++ii){
- printf("%d ", *ii);
- }
- printf("/n");
- }
- void int_splice(int M, int min, vector<int> & v){
- if(M < min)
- return;
- for(int i = min; i <= M; i++){
- v.push_back(i);
- if(i == M){
- print_vector(v);
- v.pop_back();
- return;
- }else{
- int_splice(M - i, i + 1, v);
- }
- v.pop_back();
- }
- }
- int main_int_splic(){
- vector<int> v;
- int_splice(10, 1, v);
- return 0;
- }