From b265bc7cd779c8b048c90e4cd7a372ff851891a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D1=80=D1=8C=D1=8F=20=D0=A2=D0=BE=D1=80=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0?= Date: Tue, 9 Dec 2025 03:52:58 +0300 Subject: [PATCH] Added func of coins change --- src/intro_1/change_coins.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/intro_1/change_coins.py diff --git a/src/intro_1/change_coins.py b/src/intro_1/change_coins.py new file mode 100644 index 0000000..570ee89 --- /dev/null +++ b/src/intro_1/change_coins.py @@ -0,0 +1,33 @@ +def change(lot, nom_1, nom_2, nom_3): + """ + Первым вргументом является сумма, которую необходимо разменять. + Остальные 3 аргумента - номиналы, любые ненулевые. + Функция ищет самый легкий размен. + """ + + all_nom = sorted([nom_1, nom_2, nom_3], reverse=True) + + for count_0 in range(lot // all_nom[0] + 1): + rest_1 = lot - count_0 * all_nom[0] + + for count_1 in range(rest_1 // all_nom[1] + 1): + rest_2 = rest_1 - count_1 * all_nom[1] + + if rest_2 % all_nom[2] == 0: + result = [count_0, count_1, rest_2 // all_nom[2]] + print( + f"размен: {all_nom[0]} * {result[0]} + " + f"{all_nom[1]} * {result[1]} + {all_nom[2]} * {result[2]}" + ) + return + + else: + print("-42!") + return + +FIO = input("Введите через пробел имя, фамилию и отчество\n").split() +nominals = [len(string) for string in FIO] +if len(nominals) == 2: + nominals += [19] +lot_to_change = int(input("Введите сумму, которую нужно разменять\n")) +change(lot_to_change, nominals[0], nominals[1], nominals[2])