Member 13444731 Ответов: 3

Конвертация 4,5 евро изменение на сумму евро 50 центов 20 центов 10 центов и т. д.


Я знаю другие методы как это сделать но я хочу найти более простой это Python
Я пытался и пытался, но ничего не получалось, кто-нибудь может мне помочь ?

Два входных значения, цена товара и предложенная сумма, вводятся в центах, например 3580 за €35,80 и 4000 за €40,00.
Отображение выходных данных в следующем формате:

Цена Покупки: €35.80
Сумма Тендера: €40,00

Ваша сдача составляет: €4.20
4 монеты по одному евро
0 50 центовых монет
1 20 центовая монета
0 10 центовых монет
0 5 центовых монет
0 центов

Вот что я пытался сделать

Что я уже пробовал:

EURO = 100
purchase_price = int(input("Enter The Price "))

amount_tendered = int(input("Enter The Amount Tendered"))

your_change = (amount_tendered - purchase_price)

if amount_tendered >= purchase_price:

  one_euro = your_change//EURO
  fifty_cents = your_change%50
  twenty_cents = your_change%20

  print(one_euro)
  print(fifty_cents)
  print(twenty_cents)
else:
    print("STOP")

3 Ответов

Рейтинг:
26

Patrice T

Цитата:
4 монеты по одному евро
0 50 центовых монет
1 20 центовая монета
0 10 центовых монет
0 5 центовых монет
0 центов

В '2 цента монет пропущены.

Вы знаете, как сделать сдачу на любую заданную сумму.
То, что вы кодируете, не делает, это вычисляет остаток сдачи каждый раз, когда вы даете монеты.
Когда вы даете "4 монеты по одному евро", вам нужно вывести их из your_change.

[Обновление]
Цитата:
Итак, что я делал неправильно, так это то, что я не делал то же самое для всех из них.
one_euro = your_change//евро
fifty_cents = (your_change -(100*one_euro))//50
twenty_cents =(your_change -(100*one_euro))//20

Лучше, но все равно неправильно.
Попробуйте с изменением 4.88, 4.49 и попробуйте другие значения, пока вы не будете уверены, что это работает.

В реальной жизни, когда вы даете сдачу, вам также приходится иметь дело с тем, сколько монет каждого значения у вас есть.


Member 13444731

Итак, что я делал неправильно, так это то, что я не делал то же самое для всех из них.
one_euro = your_change//евро
fifty_cents = (your_change -(100*one_euro))//50
twenty_cents =(your_change -(100*one_euro))//20
теперь все работает благодаря тебе спасибо тебе большое

Рейтинг:
18

CPallini

Целочисленное деление и модуль (и списки) творят чудеса.

purchase_price = int(input("Enter The Price "))

amount_tendered = int(input("Enter The Amount Tendered "))

your_change = (amount_tendered - purchase_price)

if  your_change < 0 :
  exit(1)

remain_change = your_change

coins = [100, 50, 20 , 10, 5]
names = ['euro', 'fifty cents', 'twenty cents', 'ten cents', 'five cents']

index = 0
for c in coins:
  count = remain_change // c
  remain_change = remain_change % c
  if count > 0:
    print( "%d %s" % (count, names[index]))
  index = index +1


Рейтинг:
0

OriginalGriff

Простой. Вы не учитываете сумму, которую использовали ранее.
Поэтому, если вы используете 1 50 центов, вам нужно вычесть эту стоимость - 50 центов - из суммы, которую вы должны им вернуть.

И... если все выражается в центах, то почему вы переводите их в евро с плавающей запятой, а затем делите их на количество центов в каждой монете? Оставьте его в центах, и все станет намного проще.


Member 13444731

Мне не нужно его конвертировать (мой результат должен быть таким: вы получили 4 один евро, ноль пятьдесят центов, 2 двадцать центов ) это всего лишь пример, но мой код должен преобразовать его в количество евро 50 центов 20 центов 10, 5 и 1, например, 425 центов