Python - desglose en billetes y moneda de una cantidad dada

   
Vista:

desglose en billetes y moneda de una cantidad dada

Publicado por gonzalo (6 intervenciones) el 08/09/2012 18:17:18
Realiza 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 ¤ y monedas de 2 y 1 ¤.
Por ejemplo, si deseamos conocer el desglose de 434 ¤, el programa mostrar´a 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´omo se efect´ua el desglose? Muy f´acil. Empieza por calcular la divisi´on entera entre
la cantidad y 500 (el valor de la mayor moneda): 434 entre 500 da 0, as´ı que no hay billetes de
500 ¤ en el desglose; divide a continuaci´on la cantidad 434 entre 200, cabe a 2 y sobran 34, as´ı
que en el desglose hay 2 billetes de 200 ¤; dividimos a continuaci´on 34 entre 100 y vemos que
no hay ning´un billete de 100 ¤ en el desglose (cabe a 0); como el resto de la ´ultima divisi´on es
34, pasamos a dividir 34 entre 20 y vemos que el desglose incluye un billete de 20 ¤ y a´un nos
faltan 14 ¤ por desglosar. . . )
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

desglose en billetes y moneda de una cantidad dada

Publicado por xve (1230 intervenciones) el 08/09/2012 21:20:41
Hopla gonzalo, aqui tienes una manera en la que indicas a cada valor si es moneda o billete, y te pone el plural si es necesario. Espero que te sirva...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
importe = int(raw_input('Ingresar importe a desglosar: '))
 
# importes de los billetes y monedas con su tipo en singular
tipos = (
    (500,"billete"),
    (200,"billete"),
    (100,"billete"),
    (50,"billete"),
    (20,"billete"),
    (10,"billete"),
    (5,"billete"),
    (2,"moneda"),
    (1,"moneda")
)
 
for tipo in tipos:
    valor=tipo[0]
    descripcion=tipo[1]
 
    # funcion para mostrar la s del plural si es necesario
    s=lambda valor,text: valor > 1 and text+"s" or text
 
    if importe/valor>0:
        print "%d %s de %d" % ((importe / valor), s((importe / valor),descripcion), valor)
        # cogemos el resto de la division
        importe = importe % valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

desglose en billetes y moneda de una cantidad dada

Publicado por gonzalo (6 intervenciones) el 09/09/2012 05:31:32
muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

desglose en billetes y moneda de una cantidad dada

Publicado por juandomingo (1 intervención) el 13/05/2013 12:45:50
Hola, y que pasa si la cantidad a desglosar es cero ? como hago para que el programa me imprima : debe ingresar un valor mayor a uno?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar