como puedo hacer este codigo
buenas amigos me mandaron esto como puedo hacerlo o como es el codigo en c]++ o java Dado un sistema monetario S de longitud K y una cantidad de cambio C, devolver una solución (si existe) que nos indique el número de monedas de S equivalente a C, es decir, que nos muestre el cambio para C a partir de monedas de S.
Un sistema monetario que contiene monedas de valor 10, 6, 5 y 1. La cantidad que debemos cambiar es C=12. El algoritmo voraz siempre intentará realizar el cambio mediante monedas del mayor valor posible. Si en algún paso C es menor estricto que S[t] (t≤K), se incrementará t y repetiremos el mismo pasó para la siguiente moneda de S. Al finalizar, el algoritmo voraz nos indica que el cambio resultante para 12 son dos monedas de 1 y una de 10. Cómo he comentado al principio los algoritmos voraces en muchas ocasiones no presentan la mejor solución, pues en éste ejemplo sería mejor cambiar 12 por dos monedas de 6, entendiendo por mejor solución devolver el menor número de monedas posibles.
El esquema básico de un algoritmo voraz:
Clase EsquemaVoraz
proc voraz()
alg
inicializa()
mientras (No fin())
seleccionaYElimina()
si (prometedor()):
anotaEnSolucion()
fsi
fmientras
fin
Solución del Ejemplo
Clase CambiodeMonedas hereda EsquemaVoraz
m: array[1..n] de Entero
c: Entero
k: Entero
sol: array[1..n] de Entero
proc inicializa()
alg
sol:=
k:=0
fin
func fin() dev (b: Lógico)
alg
b:=((k=n) ó (c=0))
fin
proc seleccionaYElimina()
alg
k:=k+1
fin
func prometedor() dev (b: Lógico)
alg
b:=(m[k]
buenas amigos me mandaron esto como puedo hacerlo o como es el codigo en c]++ o java Dado un sistema monetario S de longitud K y una cantidad de cambio C, devolver una solución (si existe) que nos indique el número de monedas de S equivalente a C, es decir, que nos muestre el cambio para C a partir de monedas de S.
Un sistema monetario que contiene monedas de valor 10, 6, 5 y 1. La cantidad que debemos cambiar es C=12. El algoritmo voraz siempre intentará realizar el cambio mediante monedas del mayor valor posible. Si en algún paso C es menor estricto que S[t] (t≤K), se incrementará t y repetiremos el mismo pasó para la siguiente moneda de S. Al finalizar, el algoritmo voraz nos indica que el cambio resultante para 12 son dos monedas de 1 y una de 10. Cómo he comentado al principio los algoritmos voraces en muchas ocasiones no presentan la mejor solución, pues en éste ejemplo sería mejor cambiar 12 por dos monedas de 6, entendiendo por mejor solución devolver el menor número de monedas posibles.
El esquema básico de un algoritmo voraz:
Clase EsquemaVoraz
proc voraz()
alg
inicializa()
mientras (No fin())
seleccionaYElimina()
si (prometedor()):
anotaEnSolucion()
fsi
fmientras
fin
Solución del Ejemplo
Clase CambiodeMonedas hereda EsquemaVoraz
m: array[1..n] de Entero
c: Entero
k: Entero
sol: array[1..n] de Entero
proc inicializa()
alg
sol:=
k:=0
fin
func fin() dev (b: Lógico)
alg
b:=((k=n) ó (c=0))
fin
proc seleccionaYElimina()
alg
k:=k+1
fin
func prometedor() dev (b: Lógico)
alg
b:=(m[k]