Je veux créer un programme qui prend une entrée d'un utilisateur et renvoie la valeur dans les factures

C'est-à-dire si l'entrée est 110, je voudrais programmer pour sortir:

1 x 100
1 x 10

Et si l'entrée est 87 je veux programmer en sortie

4 x 20
1 x 5
2 x 1

Etc. Quelqu'un sait comment faire cela?

2
Nils Edström 31 août 2020 à 17:37

2 réponses

Meilleure réponse

Vous pouvez utiliser la division entière pour obtenir la fréquence à laquelle chaque facture tient.

bills = [20, 5, 1]

input = 87

for bill in bills:
    integer_div = input // bill
    if integer_div > 0:
        print(f'{integer_div} x {bill}')
        input -= integer_div * bill

Résultat

4 x 20
1 x 5
2 x 1
1
Mace 31 août 2020 à 14:54
def change(amount, bills):
    money = {}
    for bill in bills:
        bill_count = amount/bill
        money[bill] = bill_count
        amount -= bill * bill_count
    return money

result = change(87, [20, 5, 1])
for coin, amount in result.items():
    if amount != 0:
        print("%d X %d" % (amount, coin))

Fera le résultat requis.

0
Finci 31 août 2020 à 14:57