Să se scrie un program C/C++/ Pascal care citeşte de la tastatură numărul natural N şi care scrie toate submulţimile cu 3 elemente ale mulţimii {1,2,…n}, N>3.
Utilizator anonim:
Asta e tot enuntul sau mai e? Ai invatat backtraking? Elementele trebuie sa fie ordonate sau nu?
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int x[100], n;
void prelsol() {
for (int i=1; i<=n; i++) {
cout<<x[i]<<" ";
}
}
int valid(int k) {
for (int i=1; i<=n; i++) {
if (x[i]==x[k]) return 0;
}
return 1;
}
void back() {
int k;
for (k=1; k<=n; k++) {
x[k]=0;
}
k=1;
while (k>0) {
if (k==n+1) {
prelsol();
k--;
}
else {
if (k<=n-1) {
x[k]++;
if (valid(k)) k++;
else {x[k]=0; k--;}
}
}
}
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba rusă,
9 ani în urmă