👤

Problema #122 de pe pbinfo va rog dau coroana

Răspuns :

Răspuns:

#include <bits/stdc++.h>

using namespace std;

int main() {

   int n, m, nb = 0, mb = 0; // nb = nr de biti n, mb = nr de biti m

   

   cin >> n >> m;

   

   for(int i = 0; i < 32; i++) {// un numar int este reprezentat pe 32 biti

       if(n & (int)pow(2, i)) { // daca am gasit un bit de 1 in reprezentarea binara a lui n incrementam valoarea lui nb

           nb++;

       } else if(pow(2,i) > n) break; // daca am ajuns la un numar mai mare decat n, e clar ca nu o sa mai gasim biti de 1

   }

   // acelas lucru pentru m

for(int i = 0; i < 32; i++) {

       if(m & (int)pow(2, i)) {  

           mb++;

       } else if(pow(2,i) > m) break;  

   }

   if(nb > mb) {

       cout << n;

   } else {

       cout << m;

   }

   return 0;

}

Explicație:

Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


En Learnings: Alte intrebari