新手求助 讲列表用奇偶数划分开来。
prolog吧
全部回复
仅看楼主
level 1
左岸想念_ 楼主
?- paruns([8,0,4,3,7,2,-1,9,9], RunList).
RunList = [[8, 0, 4], [3, 7], [2], [-1, 9, 9]]
讲一个列表通过连续的奇数偶数划分开来。
希望有大神能给讲讲。
2017年04月05日 04点04分 1
level 13
paruns([],[]).
paruns(L,R):-
lianxu_even_odd(L,RH),
gettail(L,RH,LT),
paruns(LT,RT),
R = [RH | RT].
lianxu_even_odd(L,RH):-
L = [H|T],
abs(H,Habs),
EvenOdd is Habs mod 2,
lianxu_even_odd(L,EvenOdd,RH).
lianxu_even_odd([],_,[]).
lianxu_even_odd(L,EvenOdd,RH):-
L= [H|T],
abs(H,Habs),
EvenOdd is Habs mod 2,
lianxu_even_odd(T,EvenOdd,R),
RH = [H|R].
lianxu_even_odd(L,EvenOdd,RH):-
L= [H|T],
abs(H,Habs),
\+EvenOdd is H mod 2,
RH=[].
gettail(L,[],L).
gettail(L,R,LT):-
L=[H|T],
R=[RH|RT],
H=RH,
gettail(T,RT,LT).
abs(H,Habs):-
H > 0,
Habs = H.
abs(H,Habs):-
H < 0,
Habs = -H.
abs(0,0).
2017年04月10日 05点04分 2
1