Informatică, întrebare adresată de andrei023223, 9 ani în urmă

Problema #122 de pe pbinfo va rog dau coroana

Răspunsuri la întrebare

Răspuns de ProMinecraft69
1

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:


ProMinecraft69: Poti sa-mi dai, poti sa nu, nu tare imi pasa de puncte si coroane doar vreau sa ajut :))
andrei023223: Mulțumesc
andrei023223: Mai am o problema
andrei023223: #429
ProMinecraft69: Pune alt post :)
ProMinecraft69: Vrei tot cu biti facuta?
andrei023223: Nu
andrei023223: E pus deja anunți
andrei023223: Anuntu
ProMinecraft69: Nu il gasesc, imi poti da link?
Alte întrebări interesante