Programación Web y Scripting > Python

 Calcular billetes

(1/1)

Meta:
Hay un programa que se me resiste.

un programa que calcule el desglose en billetes y monedas de una cantidad exacta de euros. Hay billetes de 500, 200, 100, 50, 20, 10 y 5 euros y monedas de 2 y 1 euros. Por ejemplo, si deseamos conocer el desglose de 434 euros, el programa mostrará por pantalla el siguiente resultado:
2 billetes de 200 euros.
1 billete de 20 euros.
1 billete de 10 euros.
2 monedas de 2 euros.
(¿Que cómo se efectúa el desglose? Muy fácil. Empieza por calcular la división entera entre la cantidad y 500 (el valor de la mayor moneda): 434 entre 500 da 0, así que no hay billetes de 500 euros en el desglose; divide a continuación la cantidad 434 entre 200, cabe a 2 y sobran 34, así
que en el desglose hay 2 billetes de 200 euros; dividimos a continuación 34 entre 100 y vemos que no hay ningún billete de 100 euros en el desglose (cabe a 0); como el resto de la última división es 34, pasamos a dividir 34 entre 20 y vemos que el desglose incluye un billete de 20 euros y aún nos faltan 14 euros por desglosar. . . )

He guardado todos los billetes y moneda en cada variable. He intentado y sigo con ello usando los if-else con sus operadores ==, !=, <=, and, or, etc, etc, etc.

Este tipo de ejercicio es mucho para mi. Aún así sigo para aprender aunque sea un tocho de código que haga y ustedes muy pequeño. Sigo experimentando pero necesito ideas.


--- Código: Python ---# Introducir datos a la variable.E = int(raw_input('Ingresar Capital: ')) # Variables Billetes.a = 500b = 200c = 100d = 50e = 20f = 10g = 5 # Variables Monedas.h = 2i = 1 #R = (a / 500 != 0) or (b / 200 != 0) or (c / 100 != 0) or (d / 50 != 0) or (e / 20 != 0) or (f / 10 != 0) or (g / 5 != 0) or (h / 2 != 0) or (i / 1 != 0) #print R if (E / a) == 0:    a1 = E    print a1if (a1 / b) == 0:    a2 = a1    print a2        etc.  print '%d billetes de 500 €uros.' % a1print '%d billetes de 200 €uros.' % a2print '%d billetes de 100 €uros.' % a3print '%d billetes de 50 €uros.' % a4print '%d billetes de 20 €uros.' % a5print '%d billetes de 10 €uros.' % a6print '%d billetes de 5 €uros.' % a7print '%d monedas de 2 €uros.' % a8print '%d monedas de 1 €uros.' % a9      

JoseCr:

--- Código: Python ---monto = int(raw_input('Ingresar Capital: '))if isinstance(monto, int):     if monto//500!= 0:          print "hay", monto//500, "billetes de 500"     if monto%500//200 != 0:          print "hay", monto%500//200, "billetes de 200"     if (monto%200)//100 != 0:          print "hay", (monto%200)//100, "billetes de 100"      if (monto%100)//50 != 0:          print "hay", (monto%100)//50, "billetes de 50"     if (monto%50)//20 != 0:          print "hay", (monto%50)//20, "billetes de 50"     if (monto%20)//10 != 0:          print "hay", (monto%20)//10, "billetes de 10"     if (monto%10)//5 != 0:          print "hay", (monto%10)//5, "billetes de 5"     if (monto%5)//2 != 0:          print "hay", (monto%5)//2, "monedas de 2"     else:          print "hay", (monto%2)//1, "monedas de 1"else:     print "ERROR NUMERO DEBE SER ENTERO                  

Meta:
Muchas gracias amigo.

Navegación

[0] Índice de Mensajes

Ir a la versión completa