Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ ifstream f("atestat.in");
int n, a[100],zero,unu;
//citesc n din fisier, apoi cele n numere le memorez in vectorul a
f>>n;
for(int i=0;i<n;i++)
f>>a[i];
//ordonez crescator vectorul a
for (int i=0;i<n-1;i++)
for (int j=i+1;j<n;j++)
if (a[i]>a[j])
{
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
//in variabila zero retin numarul de 0-uri din desc in baza 2
//in var unu retin nr de 1 din desc in baza 2 a fiecarui element a[i]
//daca zero==unu atunci afisez numarul
for (int i=0;i<n;i++)
{int k =a[i];
zero=0; unu=0;
while (k!=0)
{
if(k%2==0) zero++; else unu++;
k=k/2;
}
if (zero==unu) cout<<a[i]<<" ";
}
return 0;
}
Explicație: