Я собираюсь выйти на конечность и предположить, что ОП говорит об изменении, как в деньгах, возвращенных из транзакции.
Если это так, то это, вероятно, домашнее задание, поэтому только псевдокод.
Простейший способ первой попытки сделать это следующим образом. Пусть 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"
Просьба предоставить огромное количество дополнительных деталей. – SLaks
Что заставляет вас думать, что это где-то близко к достаточной информации, чтобы ответить на этот вопрос? –
Является ли кто-то еще смущенным или это только я? – Mayank