namespace Feladat06_OnkiszolgaloKassza { internal class Program { static void Main(string[] args) { const int CIMLETEK_SZAMA = 12; Console.WriteLine("=== Önkiszolgáló kassza ==="); Console.Write("A vásárlás összege (Ft): "); int osszeg = int.Parse(Console.ReadLine()); int fizetendo = OtreKerekit(osszeg); Console.WriteLine($"Kerekítés után fizetendő: {fizetendo} Ft"); Console.Write("Átadott készpénz (Ft): "); int atadott = int.Parse(Console.ReadLine()); if (atadott < fizetendo) { Console.WriteLine($"Nem elegendő: még {fizetendo - atadott} Ft hiányzik."); } else { int visszajaro = atadott - fizetendo; if (visszajaro == 0) { Console.WriteLine("Pontos fizetés, nincs visszajáró."); } else { Console.WriteLine($"Visszajáró: {visszajaro} Ft"); Console.WriteLine(); Console.WriteLine("A kiadott címletek:"); int maradek = visszajaro; int osszesDarab = 0; for (int i = 0; i < CIMLETEK_SZAMA; i++) { int cimlet = CimletErteke(i); int darab = maradek / cimlet; if (darab > 0) { Console.WriteLine($"{cimlet} Ft: {darab} db"); osszesDarab += darab; } maradek = maradek % cimlet; } Console.WriteLine($"Összesen {osszesDarab} darab pénzt adott ki a gép."); } } } // Magyarországon a készpénzes végösszeget 5 forintra kerekítjük. // 1 és 2 Ft-ra végződve lefelé, 3 és 4 Ft-ra végződve felfelé. static int OtreKerekit(int osszeg) { return (osszeg + 2) / 5 * 5; } // A forgalomban lévő címletek csökkenő sorrendben, sorszám szerint. static int CimletErteke(int sorszam) { int ertek; switch (sorszam) { case 0: ertek = 20000; break; case 1: ertek = 10000; break; case 2: ertek = 5000; break; case 3: ertek = 2000; break; case 4: ertek = 1000; break; case 5: ertek = 500; break; case 6: ertek = 200; break; case 7: ertek = 100; break; case 8: ertek = 50; break; case 9: ertek = 20; break; case 10: ertek = 10; break; case 11: ertek = 5; break; default: ertek = 1; break; } return ertek; } } }