Pagini recente » Cod sursa (job #2641493) | Cod sursa (job #575956) | Cod sursa (job #2908275) | Cod sursa (job #413807) | Cod sursa (job #3160560)
#include <bits/stdc++.h>
using namespace std;
int main()
{
/**
1. Citim n natural si afisam toate sirurile de n biti.
ex: n = 3
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
int n, N, i, j;
cin >> n;
N = (1 << n);
for (i = 0; i < N; i++)
{
/// reprezentam pe i in baza 2 pe n biti
for (j = n - 1; j >= 0; j--)
cout << ((i >> j) & 1);
cout << "\n";
}
-------------------------------------------------
2. Citim n natural. Sa afisam toate submultimile
multimii {1,2,...,n}
ex: n=3
{} {1} {2} {3} {1,2} {1,3} {2,3} {1,2,3}
int n, N, i, j;
cin >> n;
N = (1 << n);
for (i = 0; i < N; i++)
{
/// reprezentam pe i in baza 2 pe n biti
for (j = 0; j < n; j++)
if ((i >> j) & 1) cout << (j + 1) << " ";
cout << "\n";
}
--------------------
Rezolvare 2:
1 2 3
a = 0 0 1 => {3}
0 1 0 => {2}
0 1 1 => {2,3}
...
1 1 1 => {1,2,3}
int n, i, a[25] = {0};
cin >> n;
a[n] = 1;
while (a[0] == 0)
{
/// afisare submultime
for (i = 1; i <= n; i++)
if (a[i] == 1) cout << i << " ";
cout << "\n";
/// trecem la urmatoarea submultime:
for (i = n; a[i] == 1; i--)
a[i] = 0;
a[i]++;
}
-----------------------------------------------
3. Generam permutarile multimii {1,2,...,n}
*/
ifstream fin("permutari.in");
ofstream fout("permutari.out")
int n, i;
fin >> n;
vector<int> a(n);
for (i = 1; i <= n; i++)
a[i - 1] = i;
do
{
for (int e : a)
fout << e << " ";
fout << "\n";
}
while(next_permutation(a.begin(), a.end()));
return 0;
}