Ciao Maryam buona serata,
guarda sinceramente per il punteggio non so darti un valore esatto però devo dirti che purtroppo questo HW si basa sulla ricorsione pertanto sarà fortemente penalizzato chi non la userà, forse al pari di chi non svolgerà per niente l'esercizio. E' davvero un peccato che tu abbia risolto il primo problema ma non senza usare la ricorsiva. Voglio darti qualche suggerimento, poichè immagino che sarai arrivata alla soluzione con qualche metodo alternativo, e che non conoscendo il numero di iterazioni avrai basato il tuo programma su un grande while. Se sei arrivata a questo punto in realtà la soluzione del problema per passare una funzione a ricorsiva è piuttosto semplice, te la schematizzo:
- Scomponi il tuo problema in problema/dichiarazione e inizializzazione di variabili. Questa parte solitamente è la chiamata alla funzione del grade. Qui implementerai poi una funzione che una volta eseguita eseguirà la stesssa operazione ricorsivamente.
- Crea una seconda funzione che chiamerai dalla funzione principale suddetta, tale funzione avrà come argomento un argomento mutevole. Ti faccio un esempio. Se vuoi aver la moltiplicazione di n numeri parti con un caso noto. Ad esempio 5. Vuoi allora moltiplicare tutti i numeri secondo lo schema del fattoriale. Alla prima chiamata della tua funzione in x ci sarà 5, poi invece di ritornare il valore di totale * numero, ritornerai il totale_parziale (chiamiamolo così perché sarà richiamato) e poi al posto di x avrai x-1. E così via fino al caso 1, caso in cui uscirai dalla funzione ricorsiva con un return x.
Tutti questi consigli non vogliono essere inutili o perditempo, solo mi scoccerebbe che una soluzione non fosse accetta per un problema di ""forma"" . Tra mille virgolette ovviamente in quanto cambiando il programma secondo il modo che ti ho descritto sebbene potrebbe sembrarne banale la descrizione verbale, cambierebbe l'intero funzionamento del tuo programma, raggiungendo però lo stesso risultato, stavolta però secondo "le vie consentite".
Di nuovo,
buona serata
.
Leonardo Emili