32 lines
614 B
Plaintext
32 lines
614 B
Plaintext
PROGRAM HAMMING
|
|
|
|
|
|
!$DOUBLE
|
|
|
|
DIM H[2000]
|
|
|
|
PROCEDURE HAMMING(L%->RES)
|
|
LOCAL I%,J%,K%,N%,M,X2,X3,X5
|
|
H[0]=1
|
|
X2=2 X3=3 X5=5
|
|
FOR N%=1 TO L%-1 DO
|
|
M=X2
|
|
IF M>X3 THEN M=X3 END IF
|
|
IF M>X5 THEN M=X5 END IF
|
|
H[N%]=M
|
|
IF M=X2 THEN I%+=1 X2=2*H[I%] END IF
|
|
IF M=X3 THEN J%+=1 X3=3*H[J%] END IF
|
|
IF M=X5 THEN K%+=1 X5=5*H[K%] END IF
|
|
END FOR
|
|
RES=H[L%-1]
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
FOR H%=1 TO 20 DO
|
|
HAMMING(H%->RES)
|
|
PRINT("H(";H%;")=";RES)
|
|
END FOR
|
|
HAMMING(1691->RES)
|
|
PRINT("H(1691)=";RES)
|
|
END PROGRAM
|