• Jueves 28 de Marzo de 2024, 17:11

Autor Tema:  Cambio De Monedas En Prolog  (Leído 2520 veces)

Nicko_11

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Cambio De Monedas En Prolog
« en: Lunes 30 de Abril de 2007, 12:21 »
0
Hola!

tengo que hacer una serie de ejercicios de prolog para la uni y me he quedado enganchado en uno, llevo un rato mirando en foros y webs pero no me aclaro, a ver si pueden ayudarme, plis!

este es el enunciado:

Escriba un predicado vuelta(I, L, B), donde:
- I es la cantidad de dinero a devolver.
- L es una lista de los billetes con los que se cuenta para realizar la devolución ordenada de forma descendiente.
- en B se debe devolver la lista de la cantidad billetes de cada tipo que se deben devolver. La devolución debe realizarse utilizando la menor cantidad de billetes.

por ejemplo ejemplo: vuelta(12, [5, 4, 1], B).

El interprete debe devolver en B la lista [0, 3, 0]


Gracias!

Nicko_11

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Cambio De Monedas En Prolog
« Respuesta #1 en: Lunes 30 de Abril de 2007, 15:08 »
0
en un principio creo que lo tengo, sería algo así???

vuelta(0,[],[]).
%miro de uno en uno lo que hace
%para el caso de la J, incremento el valor del contador A y miro si ya es I, si no, sumo J a J y utilizo la recursividad
vuelta(I,(J,Q,K),(A,B,C)) :- A1=A+1,I<=J,J1=J+J,vuelta(I,(J1,Q,K),(A1,B1,C1)).
%lo mismo para la Q
vuelta(I,(J,Q,K),(A,B,C)) :- B1=B+1,I<=Q,Q1=Q+Q,vuelta(I,(J,Q1,K),(A1,B1,C1)).
%lo mismo para la K
vuelta(I,(J,Q,K),(A,B,C)) :- C1=C+1,I<=K,K1=K+K,vuelta(I,(J,Q,K1),(A1,B1,C1)).



alguien puede ayudarme?