ESERCIZI SULLA RICORSIONE
-
Scrivere una funzione ricorsiva che, legga una sequenza di interi da input, terminata da 0 e che restituisca
il numero di tutti gli elementi che sono uguali alla somma dei due elementi immediatamente precedenti nella
sequenza. Ad esempio se la sequenza fosse 2 7 9 3 12 4 0, la funzione dovrebbe restituire 2, dato che 9 = 2 + 7 e che 12
= 3 + 9.
-
Si scriva una funzione ricorsiva che legge in input una sequenza di interi terminati da zero e verifica se la somma degli elementi letti è pari, senza utilizzare la somma, ma ricordando l'aritmetica dei numeri pari e dispari, ovvero ricorrendo all'operazione di modulo e agli operatori logici per la composizione dei risultati parziali.
-
Definire, in modo ricorsivo, una funzione che, dato un array di interi,
controlla se esistono esattamente occ occorrenze del valore val, che abbia
con prototipo
boolean ControllaOcc(int v1[], int dim, int val, int occ)}
-
Scrivere una funzione ricorsiva che dato un carattere c, legga una sequenza di caratteri da input e controlli che la sequenza
sia palindroma, con elemento centrale esattamente il carattere c. Si assuma che il carattere c appaia una e una
sola volta all'interno della sequenza e in posizione centrale rispetto alla sequenza letta.
-
Si definisca una funzione ricorsiva che dato un array non vuoto vet di caratteri alfabetici minuscoli e la sua dimensione dim, restituisca il carattere che precede (rispetto all'ordine alfabeltico) tutti i caratteri contenuti nell'array.
Se l'array contiene a la funzione deve restiuire a. Se ad esempio l'array contiene la sequenza: h s l f p, allora la
funzione restituisce il carattere e.
N.B. Ogni chiamata ricorsiva deve risolvere esattamente il problema - posto in origine per tutto l'array - per una
porzione dell'array.