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

Fie două numere naturale a şi b (a < b). Să se afişeze toate numerele rotunde din intervalul [a, b) şi numărul lor. (Un număr este rotund dacă în reprezentarea în baza 2 are numărul de cifre de 1 egal cu numărul de cifre de 0.)
Exemplu: 12(10)→→ 1100(2) este rotund.​

Răspunsuri la întrebare

Răspuns de ProTel
2

Răspuns:

using namespace std;

#include <iostream>

int rotund(int n){

int c,c0,c1,r;

c0=c1=0;r=0;

while (n>0) {

 c=n%2;

 if (c==0) c0=c0+1;

  else c1=c1+1;

 n=n/2;

  }

if (c0==c1) r=1;

return r;

}

int main() {

int i,a,b;

cout<<"a:";

cin>>a;

cout<<"b:";

cin>>b;

for(i=a;i<b;i++)

if (rotund(i)==1) cout<<i<<" ";

}

Anexe:
Alte întrebări interesante