Informatică, întrebare adresată de costinsergiuciu, 8 ani în urmă

Se citește un șir de n numere naturale. Să se afișeze câte cifre au fiecare dintre numerele citite în
reprezentarea în baza de numerație 2.
Exemplu: pentru n=2, pentru numerele citite:
45 se afișează 6 cifre binare
14 se afișează 4 cifre binare

Răspunsuri la întrebare

Răspuns de Petruccinator
1

#include <iostream>

#include <vector>

#include <climits>

int main() {

const uint64_t bits = sizeof(uint64_t) * CHAR_BIT;

uint64_t i, n;

std::cin >> n;

std::vector<uint64_t> vec(n);

for (i = 0; i < n; ++i)

std::cin >> vec[i];

for (i = 0; i < n; ++i)

std::cout << (vec[i] ? bits - __builtin_clzl(vec[i]) : bits) << '\n';

}


costinsergiuciu: nu functioneaza
Utilizator anonim: ce nu fucționează
Utilizator anonim: ???
Petruccinator: Scuze, am crezut ca compilatoarele voastre merg pe GCC.
Petruccinator: Daca esti pe MSVC (Microsoft), incearca __lzcnt()
Petruccinator: docs.microsoft.com/en-us/cpp/intrinsics/lzcnt16-lzcnt-lzcnt64?view=msvc-160
Utilizator anonim: cn eşti
Alte întrebări interesante