Esercizi¶
Scrivere una funzione ricorsiva che calcola la somma dei primi n numeri
(ex_rec_1)
Scrivere una funzione ricorsiva che calcola la potenza di un numero
(ex_rec_2)
Il Triangolo di Pascal è un insieme di numeri organizzati in un triangolo di numeri tali che
\[a_{nr} = {n! \over{r! (n-r)!}}\]Questa equazione è l’equazione del coefficiente binomiale. Possiamo costruire il triangolo di Pascal sommando i due numeri che sono sopra (diagonalmente) a ciascun numero. Per esempio:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Scrivere un programma che stampa il triangolo di Pascal. Il programma deve accettare un parametro che dice il numero di righe da stampare.
(ex_rec_13)
I numeri di Catalan sono una sequenza di interi particolare. Realizzare una funzione ricorsiva, che dato un numero n calcola (e restituisce) l’n-esimo numero delle sequenza in base alla definizione induttiva fornita in questo pdf.
(ex_rec_4)
Verifica (ricorsiva) di proprietà. Scrivere una funzione ricorsiva che legge da input una sequenza di valori interi positivi terminata dal valore 0 (che non fa parte della sequenza) e che verifica la seguente proprietà: ogni valore letto è doppio del valore precedente. Ad esempio la sequenza 2 4 8 16 32 0 verifica la proprietà. La funzione deve restituire 1 se la proprietà è verificata e 0 altrimenti e non può utilizzare gli array.
(ex_rec_5)
Inversione di una stringa ricorsiva. Scrivere un programma che legge una sequenza di interi terminata da 0 (chiede un intero alla volta) e stampa la sequenze invertita sullo schermo. Ad esempio, leggendo la sequenza 1 8 3 4 6 0, deve stampare 6 4 3 8 1. Il programma deve fare uso di una funzione ricorsiva e non può usare liste o array.
(ex_rec_6)
Implementare una funzione ricorsiva hanoi(n,A,C,B) che stampa tutti gli spostamenti necessari per risolvere la Torre di Hanoi con n dischi come illustrato in questi lucidi. Sviluppare un programma che chiede all’utente di inserire n da standard input e stampa le mosse necessarie sullo standard output.
(ex_rec_7)