316
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