- Codice:
#include <iostream>
using namespace std;
void print_combination(int* combination, int k)
{
int i;
for (i = 0; i < k; i++) {
cout << combination[i];
}
cout << "\n";
}
void find_all_combinations(int idx, int* in_use, int* combination,
int n, int k)
{
int i;
if (idx == k) {
print_combination(combination, k);
return;
}
for (i = 0; i < n; i++)
{
if (in_use[i])
{
continue;
}
in_use[i] = 1;
combination[idx++] = i + 1;
find_all_combinations(idx, in_use, combination, n, k);
combination[--idx] = 0;
in_use[i] = 0;
}
}
int main(void)
{
int in_use[8] = {0};
int curr_combination[3] = {0};
find_all_combinations(0, in_use, curr_combination, 8, 3);
return 0;
}
Sapreste aiutarmi per favore a capire come effettivamente esegue quel compito?