Blame | Last modification | View Log | RSS feed
/* After John Fisher prolog tutorial 2.8 */
/* Enumerates ways to return $1 in change: */
change([Q,D,N,P]) :-
member(Q,[0,1,2,3,4]), /* quarters */
member(D,[0,1,2,3,4,5,6,7,8,9,10]) , /* dimes */
member(N,[0,1,2,3,4,5,6,7,8,9,10, /* nickels */
11,12,13,14,15,16,17,18,19,20]),
S is 25*Q +10*D + 5*N,
S =<100,
P is 100-S.
/* Returns correct change for the given AMT: */
change1(AMT,[Q,D,N,P]) :-
member(Q,[0,1,2,3,4]), /* quarters */
member(D,[0,1,2]), /* dimes */
member(N,[0,1]), /* nickels */
member(P,[0,1,2,3,4]), /* pennies */
AMT is 25*Q +10*D + 5*N + P.