👤

#2624 invbits

Cerința
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.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieșire
Programul va afișa pe ecran numărul m.

Restricții și precizări
0 ≤ n ≤ 1 000 000 000



Exemplu
Intrare

346
Ieșire

165


Răspuns :

#include <bits/stdc++.h>

using namespace std;

void invert(long long num)

{

   long long x = log2(num) + 1;

   for (long long i = 0; i < x; i++)

      num = (num ^ (1 << i));

   cout << num;

}

int main()

{

   long long num ;

   cin >> num;

   invert(num);

   return 0;

}

Rezolvare de 90 de puncte. Nu stiu ce imi scapa, poate gasesti tu. Succes!

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari