10/06/27 03:13:49
>>99
% Prolog (最初のパターン)
九九 :- 九九([_],[_]).
九九([_,_,_,_,_,_,_,_,_,_],_) :- !.
九九(L1,[_,_,_,_,_,_,_,_,_,_]) :-
write('\n'),
九九([_|L1],[_]),!.
九九(L1,L2) :-
掛け算(L1,L2,LX),
'式をN1*N2=N3で表現する'(L1,L2,LX,N1,N2,N3),
九九(L1,[_|L2]).
掛け算(L1,L2,X) :- list(L1),list(L2),掛け算(L1,L2,[],X).
掛け算([],_,LX,LX) :- !.
掛け算([_|R1],L2,LY,LX) :-
append(L2,LY,LY2),
掛け算(R1,L2,LY2,LX).
'式をN1*N2=N3で表現する'(L1,L2,L3,N1,N2,N3) :-
length(L1,N1),
length(L2,N2),
length(L3,N3),
write_formatted('%d*%d=%2d ',[N1,N2,N3]).