fbpx

Problema #872 – Puteri3 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se citeşte un număr natural n. Să se scrie n ca sumă de puteri crescătoare 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 un şir de numere naturale distincte, separate prin câte un spaţiu, astfel:

  • toate numerele sunt puteri ale lui 2
  • suma numerelor este n
  • numerele sunt în ordine crescătoare

Restricții și precizări

  • 1 ≤ n ≤ 2.000.000.000
  • vă recomandăm să realizaţi o soluţie recursivă

Exemplu

Intrare

10

Ieșire

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

void rec(int n, int put){
    if(n == 0)
        return ;
    if(n % 2 == 0)
        rec(n / 2, put * 2);
    else
        cout << put << ' ', rec(n / 2, put * 2);
}

int main(){

    int n;
    cin >> n;
    rec(n, 1);

    return 0;
}
Comentarii

S-ar putea sa iti placa