23 lines
405 B
Plaintext
23 lines
405 B
Plaintext
If Not OpenConsole("Hofstadter Q sequence")
|
|
End 1
|
|
EndIf
|
|
|
|
#N = 100000
|
|
Define i.i, flip.i = 0
|
|
Dim q.i(#N)
|
|
q(1) = 1
|
|
q(2) = 1
|
|
For i = 3 To #N
|
|
q(i) = q(i - q(i - 1)) + q(i - q(i - 2))
|
|
Next
|
|
For i = 1 To #N - 1
|
|
flip + Bool(q(i) > q(i + 1))
|
|
Next
|
|
|
|
Print(~"First ten:\t")
|
|
For i = 1 To 10 : Print(LSet(Str(q(i)), 3)) : Next
|
|
PrintN(~"\n1000th:\t\t" + Str(q(1000)))
|
|
PrintN(~"Flips:\t\t" + Str(flip))
|
|
Input()
|
|
End
|