Programación Específica > Inteligencia Artificial
Cambio De Monedas En Prolog
(1/1)
Nicko_11:
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:
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?
Navegación
Ir a la versión completa