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
