いろんな言語で宿題スレ

このエントリーをはてなブックマークに追加
3デフォルトの名無しさん
% 宿題: http://pc12.2ch.net/test/read.cgi/tech/1153585095/38
% 言語: Prolog (IF/Prolog)
% 述語: modulus38/0, modulus38/3, get_integers/1

modulus38 :-
 write('数字列を入力してください:'),
 get_integers(L),
 modulus38(L,[],X),
 write_formatted('残った数字は: %t です\n',[X]).

modulus38([X],[],X).
modulus38([_],Y,X) :-
 modulus38(Y,[],X).
modulus38([A,B|R1],Y,X) :-
 C is (A+B) mod 10,
 modulus38([B|R1],[C|Y],X).

get_integers(L) :-
 findall(U,(repeat,get_code(C),(C==10,!,fail;U is C-48)),L).