Cod sursa(job #1326451)

Utilizator charmpitzAndrei Pit charmpitz Data 25 ianuarie 2015 14:16:01
Problema Submultimi Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.87 kb
/*
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;
}