276
Cerința
Fie un număr natural n
, n
< 2^62
. Să se afişeze toate numerele naturale mai mici sau egale cu n
, cu proprietatea că reprezentarea lor in baza 2
are exact două cifre 1
.
Date de intrare
Fişierul de intrare b2.in
conţine pe prima linie numărul natural n
.
Date de ieșire
În fişierul de ieşire b2.out
se vor afişa în ordine crescătoare numerele cerute, pe o singură linie cu spaţiu între ele.
Restricții și precizări
3
≤n
<2^62
Exemplu
b2.in
20
b2.out
3 5 6 9 10 12 17 18 20
#include <bits/stdc++.h> using namespace std; ifstream fin ("b2.in"); ofstream fout ("b2.out"); int main () { int nc=0; unsigned long long int x,n; fin >> n; x=n; while(x) { x/=2; nc++; } for (int i = 1; i <nc; ++i) for(int j = 0 ; j <i; ++j) { x=(1ull<<i)+(1ull<<j); if (x<=n) fout << x << ' '; } return 0; }
Comentarii