Informatică, întrebare adresată de Andrei0288937, 9 ani în urmă

Să se scrie o funcție care primește ca paramentru un număr natural n și returnează cea mai mare putere a lui 2 mai
mică sau egală cu n. Folosind această funcție să se descompună fiecare element al unui vector cu n ( maxim 100 )
elemente naturale strict pozitive. Ex. dacă un element are valoarea 7 el e scris ca 4+2+1 .

Răspunsuri la întrebare

Răspuns de Petruccinator
0

#include <iostream>

void putere(const int n, const int t = 1, const int suma = 1){

   if(t * 2 < n && suma + t * 2 <= n)

       putere(n, t * 2, suma + t * 2);

   std::cout << t;

   if(t != 1)

       std::cout << '+';

}

int main(){

   int n, *v;

   std::cin >> n;

   v = new int[n];

   for(int i = 0; i < n; ++i)

       std::cin >> v[i];

   for(int i = 0; i < n; ++i){

       putere(v[i]);

       std::cout << '\n';

   }

   delete[] v;

   return 0;

}

Alte întrebări interesante