主题:阶乘
DECLARE FUNCTION js$ (n&)
DECLARE FUNCTION xxx$ (s$, i&)
DEFLNG A-Z
t1# = TIMER
PRINT js$(1000)
PRINT TIMER - t1#
FUNCTION js$ (n)
s$ = "1"
FOR i = 1 TO n
s$ = xxx$(s$, (i))
DO WHILE RIGHT$(s$, 1) = "0"
k = k + 1
s$ = LEFT$(s$, LEN(s$) - 1)
LOOP
NEXT
js$ = s$ + STRING$(k, "0")
END FUNCTION
FUNCTION xxx$ (s$, i)
L3 = 8 - LEN(STR$(i))
p = 10 ^ L3
v = 0
FOR j = (LEN(s$) - L3 + 1) TO 1 STEP -L3
v = VAL(MID$(s$, j, L3)) * i + v
ss$ = RIGHT$(STR$(v), L3) + ss$
v = v \ p
NEXT
IF j > 1 - L3 THEN v = VAL(LEFT$(s$, j + L3 - 1)) * i + v
IF v > 0 THEN ss$ = STR$(v) + ss$
xxx$ = LTRIM$(ss$)
END FUNCTION
DECLARE FUNCTION xxx$ (s$, i&)
DEFLNG A-Z
t1# = TIMER
PRINT js$(1000)
PRINT TIMER - t1#
FUNCTION js$ (n)
s$ = "1"
FOR i = 1 TO n
s$ = xxx$(s$, (i))
DO WHILE RIGHT$(s$, 1) = "0"
k = k + 1
s$ = LEFT$(s$, LEN(s$) - 1)
LOOP
NEXT
js$ = s$ + STRING$(k, "0")
END FUNCTION
FUNCTION xxx$ (s$, i)
L3 = 8 - LEN(STR$(i))
p = 10 ^ L3
v = 0
FOR j = (LEN(s$) - L3 + 1) TO 1 STEP -L3
v = VAL(MID$(s$, j, L3)) * i + v
ss$ = RIGHT$(STR$(v), L3) + ss$
v = v \ p
NEXT
IF j > 1 - L3 THEN v = VAL(LEFT$(s$, j + L3 - 1)) * i + v
IF v > 0 THEN ss$ = STR$(v) + ss$
xxx$ = LTRIM$(ss$)
END FUNCTION