いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch580:デフォルトの名無しさん
10/02/02 21:11:17
>>579
% Prolog (その一)

金種計算(0,_,[]) :- !.
金種計算(_おつり残高,[],[]) :- _おつり残高 > 0,write('レジ不足です\n'),!,fail.
金種計算(_おつり残高,[_金種|R1],[(_金種,B)|R2]) :-
  _おつり残高 >= _金種,
  金種が足りる(_おつり残高,_金種,N,B),
  _残り金額 is _おつり残高 mod _金種,
  金種計算(_残り金額,R1,R2).
金種計算(_おつり残高,[_金種|R1],[(_金種,N)|R2]) :-
  _おつり残高 >= _金種,
  金種が足りない(_おつり残高,_金種,N,B),
  _残り金額 is _おつり残高 - _金種 * N,
  金種計算(_残り金額,R1,R2).
金種計算(_おつり残高,[_金種|R1],R2) :-
  _おつり残高 >= _金種,
  \+(レジの中(_金種,N)),
  金種計算(_おつり残高,R1,R2).
金種計算(_おつり残高,[_金種|R1],R2) :-
  _おつり残高 < _金種,
  金種計算(_おつり残高,R1,R2).

金種が足りる(_おつり残高,_金種,N,B) :-
  レジの中(_金種,N),
  B is _おつり残高 // _金種,
  N >= B,!.
金種が足りない(_おつり残高,_金種,N,B) :-
  レジの中(_金種,N),
  B is _おつり残高 // _金種,
  N < B,!.


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch