👤

Va roooooooooooooog urgent in c++ cu functi recursive si iterative
Se consideră tabloul liniar A[1..n] cu elemente numere naturale zecimale. Scrieţi un program care va converti elementele tabloului A[1..n] în numere octale. Programul va folosi subprogramul de convertire respectivă al unui număr zecimal


Răspuns :

#include <iostream>

using namespace std;

int conversie(int n){

   //Program conversie baza. CIteste n in baza 10, returneaza n in baza 8

int v[100],m=0,n8=0;

while(n){

 v[m++]=n%8;

 n=n/8;

}

for(int i=m-1;i>=0;i--){

       n8 = n8*10+v[i];

}

return n8;

}

void iterativ(int v[],int n){

   int i=1;

   for(i=1;i<=n;i++) v[i] = conversie(v[i]);

}

void recursiv(int v[],int n){

   v[n]=conversie(v[n]);

   if(n>1) recursiv(v,n-1);

}

int main(){

   int a[100],n,i,var=0;

   //Citire vector

   cout << "n = ",cin >> n;

   for(i=1;i<=n;i++) cin >> a[i];

   //Citire metoda rezolvare

   while(var!=1 && var!=2){

       cout << "\nIntroduceti [1] pentru varianta iterativa sau [2] pentru varianta recursiva : ";

       cin >> var;

   }

   //Apelare program

   if(var==1) iterativ(a,n);

   else recursiv(a,n);

   //Afisare rezultat

   for(i=1;i<=n;i++) cout << a[i] << " ";

}