| |

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). 14

#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.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *