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

#2624 invbits

Dat un număr natural n, să se determine numărul natural m care are are proprietatea că are în reprezentarea în baza 2 biți de 1 pe pozițiile unde n are biți de 0 și are biți de 0 pe pozițiile unde n are biți de 1. De exemplu, dacă n = 346, atunci m = 165, deoarece n se reprezintă în baza 2 prin 101011010, iar m prin 010100101.
Poate cineva sa-mi explice cum se face problema?

Răspunsuri la întrebare

Răspuns de pmarian98
0

Răspuns:

#include <iostream>

using namespace std;

int main()

{   int n;

   cin>>n;

   if(n==0) {cout<<1; return 0;}

   int aux=n;

   int p=1;

   while(aux)

   {   p*=2;

       aux/=2;

   }

   cout<<p-n-1;

   return 0;

}

Explicație:

Alte întrebări interesante