Exercises

Exercise 9:

Distributeur de billets en Python

Il y a un guichet automatique qui peut distribuer des billets de 100 dollars, des billets de 50 dollars et des billets de 20 dollars. Écrivez un programme en Python qui reçoit d'abord le nombre de billets disponibles. Ensuite, les clients retirent leurs montants souhaités en fonction des billets disponibles et chaque fois qu'un montant est retiré, le nombre de billets disponibles est équilibré. Si le montant ne correspond pas aux billets disponibles, le message d'erreur s'affiche pour le client. Si le guichet automatique est à court de billets, un message d'excuse s'affiche et le programme se termine.


Code:
 
print("ATM Dispenser")
print("pythonize.ir \t Programmer: Mohammad Rajabpur")
print("--------------------------------------------------------------------------------\n")
b100 = int(input("The number of hundred-dollar-bills = "))
b50 = int(input("The number of fifty-dollar-bills = "))
b20 = int(input("The number of twenty-dollar-bills = "))

while True:
    print("--------------------------------------------------------------------------------\n")
    print("Existing Bills:")
    print(b100, "hundered-dollar-bill(s) +", b50, "fifty-dollar-bill(s) +", b20, "twenty-dollar-bill(s)")
    s = int(input("Amount = "))
    if b100 == 0 and b50 == 0 and b20 == 0:
        print("Sorry: The ATM is out of cash.")
        break
    flag = 0
    for i in range((b100*100)//100, -1, -1):
        if flag == 1:
            break
        for j in range((b50*50)//50, -1, -1):
            if flag == 1:
                break
            for k in range((b20*20)//20, -1, -1):
                if i*100 + j*50 + k*20 == s:
                    print(i, "hundered-dollar-bill(s) +", j, "fifty-dollar-bill(s) +", k, "twenty-dollar-bill(s)")
                    flag = 1
                    b100 -= i
                    b50 -= j
                    b20 -= k
                    break
    if flag == 0:
        print("The amount doesn't match the existing bills.")

Exécution:
================= RESTART: C:\ATM Dispenser.py ================
ATM Dispenser
pythonize.ir 	 Programmer: Mohammad Rajabpur
--------------------------------------------------------------------------------

The number of hundred-dollar-bills = 10
The number of fifty-dollar-bills = 10
The number of twenty-dollar-bills = 10
--------------------------------------------------------------------------------

Existing Bills:
10 hundered-dollar-bill(s) + 10 fifty-dollar-bill(s) + 10 twenty-dollar-bill(s)
Amount = 280
2 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 4 twenty-dollar-bill(s)
--------------------------------------------------------------------------------

Existing Bills:
8 hundered-dollar-bill(s) + 10 fifty-dollar-bill(s) + 6 twenty-dollar-bill(s)
Amount = 800
8 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 0 twenty-dollar-bill(s)
--------------------------------------------------------------------------------

Existing Bills:
0 hundered-dollar-bill(s) + 10 fifty-dollar-bill(s) + 6 twenty-dollar-bill(s)
Amount = 280
0 hundered-dollar-bill(s) + 4 fifty-dollar-bill(s) + 4 twenty-dollar-bill(s)
--------------------------------------------------------------------------------

Existing Bills:
0 hundered-dollar-bill(s) + 6 fifty-dollar-bill(s) + 2 twenty-dollar-bill(s)
Amount = 300
0 hundered-dollar-bill(s) + 6 fifty-dollar-bill(s) + 0 twenty-dollar-bill(s)
--------------------------------------------------------------------------------

Existing Bills:
0 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 2 twenty-dollar-bill(s)
Amount = 30
The amount doesn't match the existing bills.
--------------------------------------------------------------------------------

Existing Bills:
0 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 2 twenty-dollar-bill(s)
Amount = 40
0 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 2 twenty-dollar-bill(s)
--------------------------------------------------------------------------------

Existing Bills:
0 hundered-dollar-bill(s) + 0 fifty-dollar-bill(s) + 0 twenty-dollar-bill(s)
Amount = 540
Sorry: The ATM is out of cash.