Sari la conținut

Problema #3348 – SumaPuteri2 – Rezolvari PBInfo

de Mihai-Alexandru 1 min citire

Cerința

Se dă un număr natural n. Descompuneți numărul n ca sumă de puteri ale lui 2.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran, în ordine crescătoare, separate prin câte un spațiu, puterile lui 2 care au suma n.

Restricții și precizări

  • 1 ≤ n < 231

Exemplu

Intrare

43

Ieșire

1 2 8 32
#include <bits/stdc++.h>
using namespace std;

int A[101], c;

int main(){
    int n;
    cin >> n;
    while(n){
        A[++c] = n % 2;
        n/=2;
    }
    int put = 1;
    for(int i = 1; i <= c; ++i){
        if(A[i] == 1)
            cout << put << ' ';
        put*=2;
    }
    return 0;
}