Hej, próbuje napisać funkcję, która rekurencyjnie będzie zliczała ile potęg dwójki potrzeba do przedstawienia podanej liczby, tzn. np.: 13=2^3+2^2+2^0, czyli odpowiedź powinna być 3. inny przykład: 61=2^5+2^4+2^3+2^2+2^0 odp: 5
i zacząłem od czegoś takiego:
#include<iostream>
#include<cmath>
using namespace std;
int liczba(int k, int n) {
if (k == 0) return 1; //warunek przerwania funkcji
return liczba(???)-liczba(???);
}
int main() {
int k;
int n;
cin >> n;
cout << liczba(n, k) << endl;
system("pause");
return 0;
}
i idee mam taką, żeby od podanej liczby n szukać największej ale mniejszej od n potęgi liczby 2 i odejmować od niej tę potęgę (gdzie k jest wykładnikiem).
niestety nawet nie potrafię zacząć tego pisać i liczę na waszą pomoc.