Ayuda con este programa a realizar en c++

- Encontrar el mínimo número de billetes y/o monedas para representar una cantidad de dinero dada.
Ejemplo: para 1548.43 el cambio mínimo sería:
1 billete de 1000 pesos
1 billete de 500 pesos
2 billetes de 20 pesos
1 moneda de 5 pesos
3 monedas de 1 peso
1 moneda de 25 centavos
1 moneda de 10 centavos
1 moneda de 5 centavos
3 monedas de 1 centavo
Respuesta
1
He creado algo que te puede interesar:
float billetes[8] = {1000, 500, 200, 100, 50, 20, 10, 5};
float monedas[8] = {2, 1, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01};
int b[8]; // para contar la cantidad de billetes usados
int m[8]; // para contar la cantidad de mondas usadas
int money(float moneda)
{   
    float dinero = moneda;
    int idx = 0;
    while(dinero >= 0.01)
    {
        for(int i = 0; i < 8; i++)
        {
            if(dinero >= billetes)
            {
                b++;
                dinero -= billetes;
                if(dinero < billetes)
                    printf("%d billete de %.0f\n", b, billetes);
                goto next;
            }   
        }
        for(int i = 0; i < 8; i++)
        {
            if(dinero >= monedas)
            {
                m++;
                dinero -= monedas;
                if(dinero < monedas)
                    printf("%d moneda de %.2f\n", m, monedas);
                goto next;
            }   
        }
        next:
            if(dinero < 0.01) return 0;
    }
    return 0;  
}
Luego sólo sería poner money(1548.43) y imprime algo así:
1 billete de 1000
1 billete de 500
2 billete de 20
1 billete de 5
1 moneda de 2
1 moneda de 1
2 monedas de 0.20
1 moneda de 0.02
1 moneda de 0.01
int main(int argc, char *argv[])
{
    money(1548.43);
    system("PAUSE");
    return EXIT_SUCCESS;
}
Te dejo un link con la descarga para que lo puedas probar, está creado con wxDev-Cpp.
http://rapidshare.com/files/314076436/billetes.zip
Me temo mucho que el código ha sido modificado sólo al publicar la respuesta, te lo dejo por pastebin.
http://pastebin.com/m62421069
http://rapidshare.com/files/314079129/billetes_y_monedas.rar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas