Pagini recente » Cod sursa (job #543058) | Cod sursa (job #328176) | Cod sursa (job #1599966) | Cod sursa (job #1853797) | Cod sursa (job #1326451)
/*
Enunt:
Toate submultimile unei multimi.
Se da multimea {1, 2, ..., n}, sa se afiseze toate submultimile acestei multimi.
*/
/*
Rezolvare:
#. {1}
#. {1}, {2}, {1, 2}
#. {1}, {2}, {1, 2}, {3}, {1, 3}, {2, 3}, {1, 2, 3}
...
Nr. lor: 2^n
ex:
n = 4 {1 2 3 4}
----------------------------------------
Orice numar am alege dintre 0, 1, ... 2^n-1
reprezentandu-l in baza 2 determinam una din
submultimi.
7 = 0 1 1 1 => {2, 3, 4}
13 = 1 1 0 1 => {1, 2, 4}
*/
#include <stdio.h>
FILE *in, *out;
int n;
int main ()
{
int total, i, c, j;
in = fopen("submultimi.in", "r");
out = fopen("submultimi.out", "w");
fscanf(in, "%d", &n);
total = 1;
for (i=1; i<=n; i++)
total *= 2;
for (i=1; i<total; i++)
{
c = i;
for (j=n; j>=1; j--)
{
if (c%2 == 1)
fprintf(out, "%d ", j);
c = c/2;
}
fprintf(out, "\n");
}
fclose(out);
fclose(in);
return 0;
}