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
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!