2
我想打印写在名单representation.For例如2号的总和如何判断写在列表表示序言2号的和
suma ([5,7,3],[3,1,4],L)
的结果应该是:
L=[8,8,7].
这是迄今为止我已经写程序:
add_final(E,[],[E]).
add_final(E,[H|T],[H|T1]):-
add_final(E,T,T1).
invers([],[]).
invers([H|T],L):-
invers(T,L1),add_final(H,L1,L).
sum([],[],T,[T]):-
T=\=0,!.
sum([],[],_,[]):-!.
sum([],[L],T,[L]):-T=0,!.
sum([L],[],T,[L]):-T=0,!.
sum([H1|T1],[H2|T2],T,[Hs|Ts]):-
S=H1+H2+T,
Tn=S div 10,
Hs=S mod 10,
sum(T1,T2,Tn,Ts).
suma(L1,L2,Ls):-
invers(L1,L1i),
invers(L2,L2i),
sum(L1i,L2i,0,Ls).
我的程序的输出是:
L = [ (3+4+0)mod 10, (7+1+ (3+4+0)div 10)mod 10, (5+3+ (7+1+ (... + ... + 0)div 10)div 10)mod 10].
发生了什么事以及如何解决?
非常感谢! – Nero