Salve, ho una traccia che dice cosi:

Si scriva in C++ una funzione ricorsiva che riceva un array di numeri interi e la sua dimensione e
restituisca TRUE se le somme di due interi consecutivi nell’array sono alternatamente una pari ed una dispari,
ossia comunque si prenda un intero x nell’array, se la somma di x con l’intero che lo precede è pari (risp. dispari),
la somma di x con l’intero che lo segue deve essere dispari (risp. pari). Esempio: la funzione invocata su un array
contenente la sequenza di interi 1 3 2 6 3 3 2 dovrà restituire TRUE. Infatti le somme degli interi consecutivi
sono 1+3 - pari, 3+2 – dispari, 2+6 – pari, 6+3 – dispari, 3+3 – pari, 3+2 – dispari.

pero non so dov'è che sbaglio perche mi da sempre False, quando realmente mi dovrebbe restituire True,
la compilazione è perfetta nel senso che non ci sono errori di sintassi.
spero qualcuno mi possa aiutare
grazie



codice:
# include <iostream>
using namespace std;
const int n=7;
bool verifica (int  [], int  );


int main ()
{
	int a[n]= {1,3,2,6,3,3,2};
	
	
if  ( verifica (a, 0))
cout<<"TRUE";
else
cout<<"FALSE";
	
return 0;	
}

bool verifica (int a [], int i)
{
	if(n%2==0)
    return false;
	
	if (i==n-1 )
	return true;
	
	if ((a[i]+a[i+1])%2 !=0 && (a[i+1] + a[i+2])%2==0)
	return false;
	
	return verifica (a,i+1);

}