Salve ho davanti il seguente problema:
Si scriva in C++ una funzione ricorsiva che riceva due array di interi A e B e le loro dimensioni dimA e dimB
(sapendo che dimB = 2*dimA – 1) e riempia B con gli elementi di A di modo da ottenere un array palindromo secondo il
seguente schema: il primo elemento di A dovrà essere l’elemento centrale di B, i successivi riempiranno B dal centro verso i
lati simmetricamente.
ESEMPIO: sia A l’array
1 2 3
allora l’array B dovrà essere riempito come segue
3 2 1 2 3
IL PROBLEMA è che non so come riempire l'array b in tutte due le direzioni (avanti ed indietro), avevo pensato ad utilizare due indici per l'array b che partivano dal centro e uno andava avanti e l'altro indietro mentre si scorreva l'array a, ma non so come farlo , se qualcuno mi potesse dare una mano lo ringrazerei
codice:# include <iostream> using namespace std; void ricorsione (int [],int [], int , int ,int ); void stampa (int b[]); const int n=3; const int k=5; int main () { int a[n]={1,2,3}; int b[k]={0}; ricorsione (a,b,0,2,2); stampa (b); return 0; } void ricorsione (int a[],int b[], int i, int l, int j) { if ( (i != n ) { b[j]=a[i]; b[l]=a[i]; } return ricorsione (a,b,i+1,l+1,j-1); } void stampa (int b[]) { for (int i=0;i<n;i++) { cout<<b[i]<<' '; cout<<endl; } }

Rispondi quotando
