Calcolo dei resti
Si supponga di dover pagare un certo importo in euro (intero, senza centesimi) utilizzando banconote da 50, 20, 10 e 5 euro, e monete da 2 e da 1 euro. Si scriva un programma che determini quante monete e banconote di ciascun tipo bisogna utilizzare se si vuole massimizzare il numero di banconote e monete di taglio maggiore (che equivale ad utilizzarne, complessivamente, il minor numero possibile).
Ad esempio, dato l'importo di 123 euro il programma dovrà stampare:
Importo totale: 123 euro
2 banconote da 50 euro
1 banconote da 20 euro
0 banconote da 10 euro
0 banconote da 5 euro
1 monete da 2 euro
1 monete da 1 euro
Indicazioni per la soluzione
- scrivi la funzione
main
(vedi S2.1) - dichiara le variabili necessarie a contenere i dati del problema:
- un valore per l'importo, una variabile per calcolare il numero di banconote/monete (una per ciascun tipo di banconota/moneta), una per contenere il resto "corrente"
- usa gli identificatori, la cui sintassi è spiegata in S2.7
- dichiara le variabili come in S2.9
- attenzione al tipo utilizzato per le variabili: intere o in virgola mobile?
- scrivi le giuste espressioni per calcolare il numero di banconote/monete (esempi di espressioni: S2.11)
- stampa il risultato utilizzando la funzione
printf
(vedi S2.12)
Suggerimenti
- non dimenticare di includere
stdio.h
- per calcolare il numero di banconote/monete si procede con una serie di divisioni e di calcoli del resto
- serviranno gli operatori di divisione
/
(vedi S11.2.1) e di resto della divisione intera%
(vedi S11.2.2)
Per il calcolo del numero di banconote/monete si può procedere come segue:
- Se si ha un importo
X=123
euro, per calcolare il numero di banconote da 50 euro, assegnandone il valore alla variabileb50
, bisogna fare la divisioneb50 = X/50
, il cui risultato è 2 (ATTENZIONE: la divisione deve essere fatta tra numeri interi!) - Di seguito si calcola il resto con
resto = X % 50
(il risultato è 23), assegnando il risultato alla variabileresto
- Il resto diviene il nuovo importo su cui calcolare il numero di banconote da 20 euro, e così via, riprendendo dal punto (1)
Nella prossima pagina potrai esaminare un esempio di soluzione dell'esercizio.