Solución: Simulador de Cajero Automático con Ciclo
billetes_1000 = 10
billetes_500 = 10
billetes_200 = 10
billetes_100 = 10
billetes_50 = 10
def calcular_total_disponible():
return (billetes_1000 * 1000 + billetes_500 * 500 +
billetes_200 * 200 + billetes_100 * 100 + billetes_50 * 50)
print("=== CAJERO AUTOMÁTICO ===")
while calcular_total_disponible() > 0:
print(f"\n--- Dinero disponible: ${calcular_total_disponible()} ---")
print("--- Inventario Actual ---")
print(f"Billetes de 1000: {billetes_1000}")
print(f"Billetes de 500: {billetes_500}")
print(f"Billetes de 200: {billetes_200}")
print(f"Billetes de 100: {billetes_100}")
print(f"Billetes de 50: {billetes_50}")
print("--------------------------")
try:
cantidad = int(input("\n¿Cuánto dinero quieres retirar? (0 para salir) "))
except ValueError:
print("Error: Por favor ingresa un número válido")
continue
if cantidad == 0:
print("¡Gracias por usar nuestro cajero!")
break
if cantidad < 50:
print("Error: El monto mínimo es 50")
continue
if cantidad % 50 != 0:
print("Error: Solo puedes retirar cantidades múltiplos de 50")
continue
if cantidad > calcular_total_disponible():
print("Error: El cajero no tiene suficiente dinero")
continue
b1000 = min(billetes_1000, cantidad // 1000)
resto = cantidad - (b1000 * 1000)
b500 = min(billetes_500, resto // 500)
resto = resto - (b500 * 500)
b200 = min(billetes_200, resto // 200)
resto = resto - (b200 * 200)
b100 = min(billetes_100, resto // 100)
resto = resto - (b100 * 100)
b50 = min(billetes_50, resto // 50)
resto_final = resto - (b50 * 50)
if resto_final != 0:
print("Error: No hay una combinación de billetes disponible para el monto solicitado")
continue
billetes_1000 -= b1000
billetes_500 -= b500
billetes_200 -= b200
billetes_100 -= b100
billetes_50 -= b50
print(f"\n✓ Retirando ${cantidad}:")
if b1000 > 0:
print(f" • {b1000} billete(s) de 1000")
if b500 > 0:
print(f" • {b500} billete(s) de 500")
if b200 > 0:
print(f" • {b200} billete(s) de 200")
if b100 > 0:
print(f" • {b100} billete(s) de 100")
if b50 > 0:
print(f" • {b50} billete(s) de 50")
if calcular_total_disponible() == 0:
print("\n⚠️ El cajero se ha quedado sin dinero. ¡Vuelve más tarde!")
print("¡Gracias por usar nuestro cajero!")
Comentarios
Publicar un comentario