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
Î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
URGENT
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
unsigned long long n=0;
char* c_ptr;
c_ptr = (char*) &n;
for (short i = 1; i <= 7; ++i) {
*c_ptr = 0;
++c_ptr;
}
*c_ptr = 32;
unsigned long long aux_n;
int one_counter;
for (unsigned long long k = 3; k < n; ++k) {
aux_n = k;
one_counter = 0;
while (aux_n) {
if (aux_n % 2 == 1) {
++one_counter;
if (one_counter > 2) {
break;
}
}
aux_n /= 2;
}
if (one_counter == 2) {
cout << k << "\n";
}
}
std::cout << "\nPress any key to continue...";
_getch();
return 0;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă