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

#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ăspunsuri la întrebare

Răspuns de ProMinecraft69
3

#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!


pmarian98: #include
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< return 0;
}
pmarian98: p-n-1
pmarian98: da 100%
Alte întrebări interesante