def zachlanne_wydawanie_reszty(reszta_do_wydania, zlote_nominaly, grosze_nominaly): reszta_zlote = int(reszta_do_wydania) # Reszta bez groszy reszta_grosze = round((reszta_do_wydania - reszta_zlote) * 100) # Precyzyjnie przeliczamy resztę na grosze wynik = 0 for nominal in zlote_nominaly: while reszta_zlote >= nominal: wynik += 1 reszta_zlote -= nominal for nominal in grosze_nominaly: while reszta_grosze >= nominal: wynik += 1 reszta_grosze -= nominal return wynik zlote_nominaly = [500, 200, 100, 50, 20, 10, 5, 2, 1] grosze_nominaly = [50, 20, 10, 5, 2, 1] reszta_do_wydania = 77.99 print("Liczba nominałów użytych do wydania reszty", reszta_do_wydania, ":", zachlanne_wydawanie_reszty(reszta_do_wydania, zlote_nominaly, grosze_nominaly))