C# :: Aufgabe #260 :: Lösung #2
3 Lösungen

#260
Begleichung einer Rechnung ausschließlich mit Münzen
Anfänger - C#
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ß!
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

von daniel59 (4260 Punkte)
- 23.07.2019 um 12:02 Uhr

using System; namespace ConsoleBegleichungRechnungMuenzen { class Program { static void Main(string[] args) { Console.WriteLine("----- Begleichung einer Rechnung ausschließlich mit Münzen -----"); do { Console.Write("Betrag in cent: "); int betrag; if (int.TryParse(Console.ReadLine(), out betrag)) { int p = GetPossibilities(betrag); Console.WriteLine("Es wurden {0} Möglichkeiten gefunden.", p); } else { break; } } while (true); Console.ReadLine(); } static int GetPossibilities(int betrag) { int current10 = 0; int current5 = 0; int current2 = 0; int current1 = 0; int counter = 0; for (int i10 = 0; i10 <= betrag / 10; i10++) { current10 = i10 * 10; for (int i5 = 0; i5 <= (betrag - current10) / 5; i5++) { current5 = current10 + i5 * 5; for (int i2 = 0; i2 <= (betrag - current5) / 2; i2++) { current2 = current5 + i2 * 2; for (int i1 = 0; i1 <= (betrag - current2); i1++) { current1 = current2 + i1; if (current1 == betrag) { counter++; } } } } } return counter; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1