Subversion Repositories programming

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
107 ira 1
/* After John Fisher prolog tutorial 2.8 */
2
 
3
/* Enumerates ways to return $1 in change: */
4
 
5
change([Q,D,N,P]) :- 
6
    member(Q,[0,1,2,3,4]),               /* quarters     */ 
7
    member(D,[0,1,2,3,4,5,6,7,8,9,10]) , /* dimes        */ 
8
    member(N,[0,1,2,3,4,5,6,7,8,9,10,    /* nickels      */ 
9
               11,12,13,14,15,16,17,18,19,20]),  
10
    S is 25*Q +10*D + 5*N, 
11
    S =<100, 
12
    P is 100-S.
13
 
14
 
15
/* Returns correct change for the given AMT: */
16
 
17
change1(AMT,[Q,D,N,P]) :- 
18
    member(Q,[0,1,2,3,4]),               /* quarters     */ 
19
    member(D,[0,1,2]),                   /* dimes        */ 
20
    member(N,[0,1]),                     /* nickels      */ 
21
    member(P,[0,1,2,3,4]),               /* pennies      */
22
    AMT is 25*Q +10*D + 5*N + P.
23
 
24