Buna!
Cum pot gasi cifre, care au proprietatea ca in scrierea binara sunt formate doar din 1?
Răspunsuri la întrebare
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