Ho provato a fare questo esercizio:
Si scriva in C++ una funzione ricorsiva che riceva un array di numeri interi e la sua dimensione (che si suppone essere dispari) e restituisca TRUE se l’array è costituito da una serie di picchi ravvicinati. Un picco è un gruppo di tre elementi consecutivi in cui quello centrale è maggiore dei due esterni e due picchi si dicono ravvicinati se il terzo elemento di un picco è il primo elemento del picco successivo.
Esempio: la funzione invocata su un array contenente la sequenza di interi 1 3 2 4 -3 7 -5 8 4 dovrà restituire TRUE. Infatti la sequenza contiene i 4 picchi {1, 3 , 2}, {2, 4, -3}, {-3, 7, -5}, {-5, 8, 4} e sono ravvicinati ( ad esempio, i picchi {1, 3 , 2}e {2, 4, -3}condividono il numero 2, e così via).
Specificare quale deve essere la prima invocazione per la funzione.
La mia prova di soluzione è questa... Ditemi cosa sbaglio?? :
codice:bool picchi(int M[], int dim, int i1, int i, int i2){ if(dim%2==0) //caso base return false; if(M[i]>M[i1] && M[i]>M[i2]) return true; return picchi(M, dim, i1+2, i+2, i2+2); }