👤

Buna!
Cum pot gasi cifre, care au proprietatea ca in scrierea binara sunt formate doar din 1?


Răspuns :

Răspuns:

Explicație:

declari un x de tip int, long sau ce vrei tu (vezi doar sa nu fie real, gen float sau double, etc)

aplici modul lui x, adica inmultesti cu -1 sau faci abs(x) (asta e in c++)

iei o variabila de acelasi tip ca x si o initializezi cu 1, o variabila m de exemplu

si faci un while m < x

siftezi m in stanga cu o pozitie si aduni un 1 lui m // adica m = m << 1; m++;

acum ar trebui ca m sa fie egal cu x

daca m nu e egal cu x, atunci x e mai mic decat m pentru ca x contine cel putin un 0.

(asta merge doar pe cazul in care numarul se considera scris in binar doar din 1 atunci cand se testeaza de la primul 1, adica in binar 0 0 0 0 0 1 1 1 1 1 e considerat scris doar din 1, pe cand 0 0 0 0 0 1 0 1 1 1 nu e

Răspuns:

#include <iostream>

using namespace std;

int n, num, i, secv, L;

bool numai1(int x)

{

   if (x==0) return false;

   else

   {

       while (x)

       {

           if (x%2==0) {return false;}

           else x/=2;

       }

       return true;

   }

}

int main()

{

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> num;

       if (numai1(num)) ++secv;

       else

       {

           if (secv>L) {L=secv; secv=0;}

       }

   }

   cout << L;

}

Explicație:

cred cunoşti conversia binară a unui număr zecimal prin împărţiri repetate la 2