組み合わせ // k(k = 10) 個のものを n(n = 4) 組に振り分け int n; int k; void f(int b, int index, int d[50]){ if(index == k){ for(int i = 0; i < n; i++){ cout << d[i] << " "; } cout << endl; // 7 1 1 1 // 6 2 1 1 // 6 1 2 1 // 以下続く return; } for(int i = b; i < n; i++){ d[i]++; f(i, index + 1, d); d[i]--; } } n = 4; k = 10; int d[50]; for(int i = 0; i < 50; i++)d[i] = 1; f(0, n, d);