Java :: Aufgabe #239 :: Lösung #2

2 Lösungen Lösungen öffentlich
#239

Begleichung einer Rechnung ausschließlich mit Münzen

Anfänger - Java von hollst - 02.05.2019 um 15:46 Uhr
Angenommen, ihr hättet an der Kasse einen Betrag X zwischen (einschließlich) einem Cent und einem Euro zu bezahlen.

Schreibe ein Program, dass die Anzahl der Möglichkeiten berechnet, X ausschließlich mit 1, 2, 5 und 10 Cent-Münzen zu begleichen.

Beispiel: X = 5 Cent -> 4 Möglichkeiten (5; 2 + 2 + 1; 2 + 1 + 1+ 1; 1 + 1 + 1 + 1 + 1)

Achtung: für einen EURO (100 Cent) gibt es bereits 2.156 Möglichkeiten!

Viel Spaß!
#2
vote_ok
von Fre011 (230 Punkte) - 27.08.2019 um 16:14 Uhr
Folgende Lösung geht wie im Beispiel davon aus, dass die Reihenfolge der Münzen keine Rolle spielt, dass somit (2 + 2 + 1; 2 + 1 + 2; 1 + 2 + 2) als eine Möglichkeit gezählt wird. Folglich gibt es für 100 Cent nur 71 Möglichkeiten. (Kleiner Widerspruch in der Aufgabenstellung, dort spielt bei den 100 Cent und 2.156 Möglichkeiten die Reihenfolge eine Rolle :) )
Quellcode ausblenden Java-Code
public class BetragX {
	
public static final int X = 100;

	public static void main(String[] args) {
		
		byte coin = 0;
		int possibilities = 1;
		
		for(int a = 0; a < X;) {
			
			int aRef = a;
			int possibilitiesRef = possibilities;
			
			switch(coin) {
			case 0:
				a += 10;
				possibilities += 7;
				break;
			case 1:
				a += 5;
				possibilities += 3;
				break;
			case 2:
				a += 2;
				possibilities += 1;
				break;
			case 3:
				a+= 1;
				break;
			}
			if (a > X) {
				a = aRef;
				possibilities = possibilitiesRef;
				coin++;
			}	
		}
		
	System.out.println(possibilities);
	
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben