online: 3; azi: 43; total: 52049 Manual clasa a ix a - Algoritmi - Algoritmi pentru conversii intre sisteme de numeratie

Manual clasa a IX a

Algoritmi

Algoritmi pentru conversii intre sisteme de numeratie

S ă se afişeze toate numerele în baza 2 care au k cifre şi sunt divizibile cu 2n. k şi n se introduc de la tastatură. (Indicație. Un număr reprezentat în baza 2 este divizibil cu 2n dacă ultimele n cifre ale reprezentării sunt 0).
# include < iostream >
using namespace std ;
int main () {
int k, n;
cout << " Introduceti k si n: " ;
cin >> k >> n;
int num = 0 ;
for ( int i = 1 ; i <= k; i++) {
num = num * 2 ; // shiftam numarul la stanga , adaugand un bit de 0 la dreapta
if (i <= n) {
num = num + 0 ; // ultimele n cifre sunt 0
} else {
num = num + ( rand () % 2 ); // generam aleatoriu o cifra 0 sau 1
}
}
while (num % ( 2 * n) == 0 ) {
cout << num << endl ; // afisam numarul daca este divizibil cu 2n
num = num + ( 1 << n); // adaugam 2^n pentru a obtine urmatorul numar cu aceleasi cifre 0
}
return 0 ;
}

Acest program generează un număr inițial cu k cifre în baza 2, având ultimele n cifre egale cu 0. Apoi, începând de la acest număr, verificăm dacă este divizibil cu 2n și afișăm numărul dacă este cazul. Pentru a genera următorul număr cu aceleași cifre 0, adăugăm 2^n la numărul curent.