Salve a tutti,
la settimana scorsa ho fatto un esame di programmazione in cui mi veniva proposto il seguente esercizio:
"Data una matrice A(MxM) determinare con una funzione booleana ricorsiva se almeno una colonna di indice dispari è uguale ad una riga di indice pari letta dall'ultimo al primo elemento.
Es.
3 1 7 2 6
4 4 8 9 5
2 5 5 4 1
2 5 5 4 1
1 2 5 6 7
Risposta: colonna 1, riga 2 -> TRUE".
Ora, questo esercizio non l'ho svolto ma ho comunque passato la prova scritta e adesso il problema è eventualmente spiegare la soluzione di questo esercizio alla prova orale.
Ho abbozzato una prima soluzione che è questa:
codice:
bool Funz(int A[][M],int i,int j,int h,int k){
if(j>=M)
return false;
else if(i>=M)
return true;
else if(h>=M)
return Funz(A,0,j+2,0,M-1);
else if(A[i][j]==A[h][k])
return Funz(A,i+1,j,h,k-1);
else
return Funz(A,0,j,h+2,M-1);
}
Il problema che mi pongo è che utilizzo 4 indici per confrontare righe e colonne e quindi vi chiedo se fosse possibile utilizzare solo 2 indici per il confronto in modo da semplificare la funzione.
Aspetto vostre risposte! Grazie in anticipo! 
Edit: ho dimenticato di precisare le precondizioni della funzione che sono i=0,j=1,h=0,k=M-1;
inoltre ho corretto le chiamate ricorsive...aspetto sempre vostre risposte