Prolog 要查找从键盘读取整数(N)的十个偶数的列表,第一个元素是N之后的第一个偶数 列表。 整数([],\:- 读(N), N1是mod(N,2), (N

Prolog 要查找从键盘读取整数(N)的十个偶数的列表,第一个元素是N之后的第一个偶数 列表。 整数([],\:- 读(N), N1是mod(N,2), (N,prolog,Prolog,以下是我的尝试: list. integer([],_):- read(N), N1 is mod(N,2), (N<0, FirstNumber is 0 ; N1 ==0, FirstNumber is N+2 ; N1 ==1, FirstNumber is N+1 ), nth1(1,I,First

以下是我的尝试:

   list.
   integer([],_):- 
           read(N),
           N1 is mod(N,2),
           (N<0, FirstNumber is 0
           ; N1 ==0, FirstNumber is N+2
           ; N1 ==1, FirstNumber is N+1
               ),


              nth1(1,I,FirstNumber,[]), 
              nth1(2,J,FirstNumber+2,I), 
              nth1(3,K,FirstNumber+4,J), 
              nth1(4,L,FirstNumber+6,K), 
              nth1(5,M,FirstNumber+8,L), 
              nth1(6,N,FirstNumber+10,M), 
              nth1(7,O,FirstNumber+12,N), 
              nth1(8,P,FirstNumber+14,O),
              nth1(9,Q,FirstNumber+16,P), 
              nth1(10,R,FirstNumber+18,Q), 
    
             write(R).
in(Num,U,L,C):-
(Num mod 2=:=0->
U是Num+2,
in(U,L,C);
Num mod 2=:=1,Num0,U是Num+1,
in(U,L,C))。
在(u,[],0):-!。
在(S[S|T],C)中:-
S mod 2=:=0,
S1是S+2,
C1是C-1,
in(S1,T,C1)。
?-in(13,1,10)。
L=[14,16,18,20,22,24,26,28,30,32]
?-in(14,1,10)。
L=[16,18,20,22,24,26,28,30,32,34]
?-in(-3,1,10)。
L=[0,2,4,6,8,10,12,14,16,18]
in(Num,U,L,C):-
    (   Num mod 2=:=0->  
        U is Num+2,
        in(U,L,C);
        Num mod 2=:=1, Num<0, U is Num+3,
        in(U,L,C);
        Num >0,U is Num+1,
        in(U,L,C)).
in(_,[],0):-!.
in(S,[S|T],C):-
    S mod 2=:=0,
    S1 is S+2,
    C1 is C-1,
    in(S1,T,C1).

?- in(13,_,L,10).
L = [14, 16, 18, 20, 22, 24, 26, 28, 30, 32]

?-in(14,_,L,10).
L = [16, 18, 20, 22, 24, 26, 28, 30, 32, 34]

?-in(-3,_,L,10).
L = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]