Pagini recente » Cod sursa (job #1278705) | Profil Diana-Elena | Monitorul de evaluare | Cod sursa (job #2019558) | Cod sursa (job #1483090)
#include <fstream>
#include <iostream>
using namespace std;
/*
10 2
5+1=6
101
1
110
Aplicatii ale operatiilor pe biti
x << y muta biiti lui x cu y pozitii la stanga
x >> y muta bitii lui x cu y pozitii la dreapta
unsigned char 0, 255
255 - 0 + 1 = 256 = 2 ^ 8
1 << x = 2 ^ x
1 << 38
1LL << 38;
(long long) 1 << 38;
Ce bit este pe pozitia j a numarului x
9876543210
1010101010 &
0010000000
0010000000 = 2^6
Cum testam daca un numar este sau nu putere a lui 2
00010000000 = N
00001111111 = N + 1
And
00000000000 = 0
10001000000 = N
10000111111 = N - 1
AND
10000000000 !=0
if(x & (1 << j))
return 1
else
return 0;
unsigned int [0, 2^32 - 1]
unsinged long long [0, 2^64 - 1]
int = 32 biti
long long 64 biti
SI(AND &)
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
SAU(or |)
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
XOR
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
5&1 = 1
101 &
001
001
____3210
0 0000 => {}
1 0001 => {1}
2 0010 => {2}
3 0011 => {1, 2}
4 0100 => {3}
5 0101 => {3, 1}
6 0110 => {3, 2};
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
[1, 2^N - 1]
*/
int main()
{
ifstream fin("submultimi.in");
ofstream fout("submultimi.out");
int n;
fin >> n;
for(int i = 1 ; i < (1 << n) ; ++ i) {
for(int j = 0 ; j < n ; ++ j)
if(i & (1 << j))
fout << j + 1 << ' ';
fout << '\n';
}
return 0;
}