Repository destinato alla condivisione di materiale e soluzioni per gli esercizi ed esami assegnati dal Prof. Monti Angelo in preparazione all'esame di Algoritmi 1
Chiamo la funzione su una lista linkata, dove p è il puntatore al primo elemento
Sottraggo a $k$ il corrente valore di p.val
se il valore "aggiornato" di $k$ è maggiore di $0$ allora significa che, la somma dei valore incontrati fino ad ora è minore di $k$, quindi non abbiamo ancora raggiunto il caso base. Richiamo la funzione ricorsiva si p.nest (con il "nuovo valore di k)
se il valore "aggiornato" di $k$ è minore uguale di 0 allora significa che la somma dei valori incontrati fino ad ora è maggiore uguale di $k$. quindi il programma deve finire ritornando la quantità di numeri sommati (ovvero il numero di iterazioni del programma)
Codice:
def es3(p, k):
k -= p.val
if k <= 0: return 1
return 1 + es(p.next, k)
Soluzione Prof