29 lines
515 B
Plaintext
29 lines
515 B
Plaintext
LOCAL p As Integer, i As Integer
|
|
CLEAR
|
|
p = 0
|
|
? "Hofstadter Q Sequence"
|
|
? "First 10 terms:"
|
|
FOR i = 1 TO 10
|
|
?? Q(i, @p)
|
|
ENDFOR
|
|
? "1000th term:", Q(1000, @p)
|
|
? "100000th term:", q(100000, @p)
|
|
? "Number of terms less than the preceding term:", p
|
|
|
|
FUNCTION Q(n As Integer, k As Integer) As Integer
|
|
LOCAL i As Integer
|
|
LOCAL ARRAY aq[n]
|
|
aq[1] = 1
|
|
IF n > 1
|
|
aq[2] = 1
|
|
ENDIF
|
|
k = 0
|
|
FOR i = 3 TO n
|
|
aq[i] = aq[i - aq[i-1]] + aq[i-aq[i-2]]
|
|
IF aq(i) < aq(i-1)
|
|
k = k + 1
|
|
ENDIF
|
|
ENDFOR
|
|
RETURN aq[n]
|
|
ENDFUNC
|