We hebben een programma nodig voor een frisdrankautomaat op de Engelse markt. De gegevens:
Het programma krijgt het in de machine gestopte bedrag en de prijs van het artikel, en moet het wisselgeld teruggeven met zo weinig mogelijk munten.
Reken alles in pennies (p). De Engelse munten zijn:
100p (1 pond) 50p 20p 10p 5p 2p 1p
Omdat alle prijzen onder 1 pond liggen, is het wisselgeld altijd kleiner dan 100p. Je hoeft de munt van 100p dus niet uit te keren.
Bereken eerst het wisselgeld (het gestopte bedrag min de prijs). Bepaal daarna
van groot naar klein hoeveel keer elke munt erin past, en hou telkens de rest
bij voor de volgende munt. Dat doe je met de gehele deling / (hoeveel munten) en
de rest-operator % (wat blijft over):
wisselgeld / 50, daarna wisselgeld % 50 als rest,Druk voor elke muntsoort het aantal af, elk op een eigen regel, ook als dat aantal 0 is. Gebruik exact deze vorm:
50p: {aantal}
20p: {aantal}
10p: {aantal}
5p: {aantal}
2p: {aantal}
1p: {aantal}
De invoer komt op twee regels: eerst het gestopte bedrag, dan de prijs (beide in pennies).
Invoer:
100
55
Uitvoer:
50p: 0
20p: 2
10p: 0
5p: 1
2p: 0
1p: 0
(wisselgeld is 45p = 2 × 20p + 1 × 5p)
Invoer:
50
33
Uitvoer:
50p: 0
20p: 0
10p: 1
5p: 1
2p: 1
1p: 0
(wisselgeld is 17p = 1 × 10p + 1 × 5p + 1 × 2p)