Я собираюсь выйти на конечность и предположить, что ОП говорит об изменении, как о деньгах, возвращенных из транзакции.
Если это так, то это, вероятно, домашняя работа, так что псевдокодтолько.
Самый простой способ сделать это с первой попытки заключается в следующем.Пусть cost
будет стоимостью транзакции, а tendered
будет суммой денег, переданных (как в центах), и давайте далее предположим, что в вашей экономике есть только долларовые купюры, кварталы и копейки (чтобы мой код был меньше).
change = tendered - cost
if change < 0:
print "Pay up some more cash, cheapskate!"
stop
dollars = 0
quarters = 0
cents = 0
while change >= 100:
dollars = dollars + 1
change = change - 100
while change >= 25:
quarters = quarters + 1
change = change - 25
while change >= 1:
cents = cents + 1
change = change - 1
print dollars " dollar(s), " quarters " quarter(s), and " cents " cent(s)."
Теперь это, без сомнения, можно сделать более эффективным с использованием операторов деления по модулю, но я оставляю это как упражнение для читателя.
Я предлагаю сестьс карандашом и бумажкой со следующими колонками (для передачи более десяти долларов за покупку за два с половиной доллара):
tendered cost change dollars quarters cents
-------- -------- -------- -------- -------- --------
1000 293
и пробежите код в своей голове, используя текущие значения из бумаги и записывая новые значения, где они меняются.
Это очень поможет вашему пониманию.
В ответ на ваше обновление:
У меня есть один доллар, и я иду в магазин, чтобы что-то купить.Я должен попросить пользователя указать сумму, которую он потратил, а затем рассчитать изменение и распечатать на экране.Тогда я должен использовать наименьшее количество четвертей, центов, никелей и копеек, а затем распечатать его на экране.
Это удивительно похоже на то, что у меня было выше:
tendered = 100
input cost
cost = int (cost * 100)
change = tendered - cost
if change < 0:
print "Pay up some more cash, cheapskate!"
stop
print "Change is ", (format "$9.99", change / 100)
quarters = 0, dimes = 0, nickels = 0, pennies = 0
while change >= 25:
quarters = quarters + 1
change = change - 25
while change >= 10:
dimes = dimes + 1
change = change - 10
while change >= 5:
nickels = nickels + 1
change = change - 5
while change >= 1:
pennies = pennies + 1
change = change - 1
print quarters, " quarters"
print dimes , " dimes"
print nickels , " quarters"
print pennies , " pennies"