Генерация комбинаций с пользовательским количеством ее елементов
Нужно реализовать функцию, которая будет генеровать и выводить нам комбинации.
Вот моя попытка, но она верно выводит только комбинации которые начинаються с 1, а затем выводит комбинации, если розсмотреть два елемента,
1 и 2,
1 и 3,
1 и 4,
2 и 6,
3 и 6,
4 и 6,
5 и 6,
а должно было:
1 и 2,
1 и 3,
1 и 4,
1 и 5,
1 и 6,
2 и 3,
2 и 4,
2 и 5,
2 и 6,
3 и 4,
3 и 5,
3 и 6,
4 и 5,
4 и 6,
5 и 6.
void Gen_Comb(int i, int x[], const int n, int j, int k)
{
bool Pen = false; int d;
for (i = 0; i <= k - 1; i++)
cout << " " << x[i] << " "; cout << "\n ";
for (i = k - 1; i >= 0; i--)
{
d = n - k + i + 1;
if (x[i] != d)
{
x[i] = x[i] + 1;
for (j = i + 1; j <= k - 1; j++)
{
if (x[j] <= d)
{
x[j] = x[j - 1] + 1;
}
}
for (i = 0; i <= k - 1; i++)
cout << x[i] << " "; cout << "\n ";
}
}
};