Vai al contenuto Link Cerca Menu (external link)
Coding e fondamenti di AI

Piano di rientro

Un condomino è rimasto indietro con le spese condominiali e l’amministratore gli propone un piano di rientro: il debito arretrato si paga a rate mensili di importo fisso, scelto dal condomino in base a quanto può permettersi, senza interessi. L’ultima rata paga solo quello che resta, quindi può essere più piccola delle altre.

L’amministratore deve scrivere nella delibera quante rate servono. Con 1.000 euro di debito e rate da 250 ne servono 4; con rate da 300 ne servono comunque 4 (300, 300, 300 e infine 100). Con un debito di zero non serve nessuna rata.

Scrivi la funzione ricorsiva numero_rate(debito, rata): se il debito è finito restituisce 0, altrimenti conta una rata e richiama sé stessa sul debito che resta. Attenzione al caso base: deve fermare la funzione anche quando il debito scende sotto zero. La verifica chiama la tua funzione con i valori di ogni caso.

Input
  • debito numero — euro ancora da pagare, zero o più
  • rata numero — euro pagati ogni mese, più di zero
Output
rate numero — numero di rate mensili necessarie
da scrivere come funzione numero_rate
Regole
  • Caso base: se il debito è minore o uguale a zero non c’è più niente da pagare, e le rate che restano sono 0. Con 1000 € e rate da 300 € il debito passa da 100 a -200: non vale mai zero esatto, e il caso base deve fermarlo lo stesso.
  • Passo: altrimenti si paga una rata adesso, e le rate sono una più quelle che servono per il debito che resta (debito - rata), calcolate richiamando la funzione stessa.
  • L’ultima rata può essere più piccola delle altre (paga solo il residuo), ma conta come una rata.
  • Niente ciclo: la funzione chiama sé stessa. Entrambi i rami restituiscono il numero con return().
Esempi
debitoratarate
10002504
10003004
R runtime non caricato