Cerința
Zoli a primit de la doamna profesoară un șir cu n
elemente, numere naturale. Lui Zoli i se cere să răspundă corect la întrebarea: “Câte numere din șir au în reprezentarea binară doar biți setați – adică au toți biții 1
?
Date de intrare
Fișierul de intrare biti.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații, reprezentând elementele șirului.
Date de ieșire
Fișierul de ieșire biti.out
va conține pe prima linie numărul nr
, reprezentând numărul de elemente ale șirului formate doar din biți setați.
Restricții și precizări
1 ≤ n ≤ 3.000.000
- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât
2.000.000.000
Exemplu
biti.in
7 24 19 15 81 7 63 100
biti.out
3
Explicație
Numerele care respectă condiția sunt 15
, 7
, 63
.
#include <bits/stdc++.h> using namespace std; ifstream cin("biti.in"); ofstream cout("biti.out"); int main() { int n , x , cnt = 0; cin >> n; for(int i = 1 ; i <= n ; i++) { cin >> x; if(x != 0 && (x & (x+1)) == 0) cnt++; } cout << cnt; }