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