Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Като по-сложен вариант може да се ползва речник number_per_coins,
- # който да помни по броя монети от всяка стойност, които да се върнат на човека.
- # Но задачата се интересува само от общия брой моменти,
- # така че това е "излишно усложнение".
- # Но пък може да е потенциално полезно -- например за да се каже на машината
- # върни му на човека толкова от тия момнети, толкова от ония и толкова от третите
- resto_in_leva = float(input())
- resto_in_cents = resto_in_leva * 100 # все още ще е float
- resto_in_cents = round(resto_in_cents) # в Python 3 round() връща integer
- # Стойностите на монетите от висока към ниска
- coins_values_in_cents = [200, 100, 50, 20, 10, 5, 2, 1]
- number_per_coin = {} # празен речник
- # Минаваме през стойностите на монетите от високи към ниски
- for coin_value in coins_values_in_cents: #
- # Брой монети от тази стойност, които влизат стойността на рестото -- целочислено деление
- number_per_coin[coin_value] = resto_in_cents // coin_value
- # Остатъка от рестото, който остава да разпределим върху по-ниските монети
- resto_in_cents = resto_in_cents % coin_value
- # Така виждаме структурата на РЕЧНИКА number_per_coin,
- # За 1.53 лв тя ще е {200: 0, 100: 1, 50: 1, 20: 0, 10: 0, 5: 0, 2: 0, 1: 3}
- #print(coins_values_in_cents)
- # Ако върху РЕЧНИКА приложим метода му .values(), получаваме същите стойности, но в СПИСЪК
- # Така виждаме структурата на СПИСЪКА number_per_coin.values(),
- # За 1.53 лв тя ще е нещо като [0, 1, 1, 0, 0, 0, 0, 3]
- #print(coins_values_in_cents.values())
- # С функцията sum(СПИСЪК) намираме общия брой монети
- # За 1.53 лв тя ще е 0+1+1+0+0+0+0+3 = 5
- print(sum(coins_values_in_cents.values()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement