Loops part 2 - 05. Coins
Здравейте, всички! Стигам 90/100 на тази задача и ми гърми за time limit.
Ето моя код:
coins = 0
change = float(input())
changeToSt = change * 100
while changeToSt > 0:
if changeToSt >= 200:
changeToSt -= 200
coins += 1
elif 200 > changeToSt >= 100:
changeToSt -= 100
coins += 1
elif 100 > changeToSt >= 50:
changeToSt -= 50
coins += 1
elif 50 > changeToSt >= 20:
changeToSt -= 20
coins += 1
elif 20 > changeToSt >= 10:
changeToSt -= 10
coins += 1
elif 10 > changeToSt >= 5:
changeToSt -= 5
coins += 1
elif 5 > changeToSt >= 2:
changeToSt -= 2
coins += 1
elif 2 > changeToSt >= 1:
changeToSt -= 1
coins += 1
print(coins)
Бая въртях да търся начин да автоматизирам стойностите на монетите но си е голяма играчка. Реално може да се постигне по извъртен начин с X // 2,като проблемно са стойностите 0.2 и 0.02 та се отказах и го реших по следният начин без нужда от било какви цикли:
coins = 0
rest = 0
if rest > 0:
coins += rest
change -= rest * 2
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.5
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.2
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.1
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.05
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.02
change = round(change, 2)
if rest > 0:
coins += rest
change -= rest * 0.01
change = round(change, 2)