Pagini recente » Cod sursa (job #2002429) | Cod sursa (job #403607) | Cod sursa (job #1257944) | Cod sursa (job #2155667) | Cod sursa (job #1297051)
#include <stdio.h>
void afisare(int n, int p[])
{
if (n == 0)
return;
for(int i=1;i <=n; i++)
printf("%d ", p[i]);
printf("\n");
}
int getbit(int n, int bit) {
int mask = 1 << bit;
if ((n & mask) == 0)
return 0;
else
return 1;
}
/*void back(int i, int n, int p[]) {
afisare(i - 1, p);
if (i == n+1)
return;
for (int a = 1; a <= n; a++) {
bool valid = true;
for (int j = 1; j <= i - 1; j++)
if (p[j] >= a)
valid = false;
if (valid == true) {
p[i] = a;
back(i + 1, n, p);
}
}
}*/
int main()
{
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
int n, p[20];
scanf("%d", &n);
for(int i=1; i<= ((1<<n)-1); i++)
{
for(int j=0; j<n ;j++)
if(getbit(i,j))
printf("%d ", j+1);
printf("\n");
}
//back(1, n, p);
return 0;
}