1
我是Prolog的完整noob。我正在完成一項任務,我創建了一個總計S
(以美分計)的更改計數器,0 < = S < = 100.因此,我需要顯示半美元,四分之一,一角硬幣,五分錢的數量。會員謂詞問題,換一美元
這裏是我的代碼:
change(S,H,Q,D,N,P) :-
member(H,[0,1,2]), /* Half-dollars */
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,11,12,13,14,15,16,17,18,19,20]),
/* ^^ nickels ^^ */
S is 50*H + 25*Q +10*D + 5*N,
S =< 100,
P is 100-S.
所以我的問題是,當我嘗試和計算像?- change(87,0,3,D,1,P).
東西我在哪裏輸入查詢量爲87美分,我需要3個季度和1個鎳.....我得到一個錯誤陳述uncaught exception: error(existence_error(procedure,change/6),top_level/0)
隨着我的最後3行代碼我以爲我正在處理正確給定的金額。我需要對所給金額作出額外的規定嗎?