UBROUTINE PACK(X,Y,L,NUM)
INTEGER X(L),Y(1000)
LOGICAL SAME,F
COMMON BUF(50)
BUF(1)=X(1)
N=1
NUM=0
SAME=X(1) EQ .X(2)
I=2
IF(____(1)____THEN
F=X(I-1) EQ X(I)
IF(____(2)____.AND..NOT.F) THEN
CALL POP(SAME,N,Y,L,NUM)
N=0
IF(I,LT,L)THEN
SAME=X(I).EQ.X(I=1)
ENDIF
ELSE
IF(____(3)____.AND.F)THEN
CALL POP(SAME,N-1,Y,L,NUM)
BUF(1)=X(I)
N=1
SAME=.RUE.
ENDIF
ENDIF
N=N+1
BUF(N)=____(4)____
I=I+1
____(5)____
ENDIF
CALL POP(SAME,N,Y,L,NUM,)
NUM=NUM+1
____(6)____
END
SUBROUTINE POP)SAME,N,Y,L,NUM)
INTEGER Y(1000)
LOGICAL SAME
COMMON BUF(50)
IF(____(7)____)THEN
Y(NUM+1)=N
Y(NUM+2)=BUF(1)
NUM=NUM+2
ELSE
Y(NUM+1)=-N
DO 10 J=1,N
Y(NUM+1+J)=BUF(J)
NUM=NUM+N+1
ENDIF
END
一九九七年度程序员级下午试题 共有3页 第 1 2 3 页
|