27 lines
814 B
Plaintext
27 lines
814 B
Plaintext
#MAX=500000
|
|
Dim a.i(#MAX)
|
|
Dim b.b(1)
|
|
Dim c.b(1000)
|
|
FillMemory(@c(),1000,1,#PB_Byte)
|
|
|
|
If OpenConsole() : Else : End 1 : EndIf
|
|
For n_Count=0 To #MAX
|
|
If n_Count=0
|
|
a(n_Count)=0
|
|
ElseIf a(n_Count-1)-n_Count>0 And b(a(n_Count-1)-n_Count)=0
|
|
a(n_Count)=a(n_Count-1)-n_Count
|
|
Else
|
|
a(n_Count)=a(n_Count-1)+n_Count
|
|
EndIf
|
|
If ArraySize(b())<a(n_Count) : ReDim b(a(n_Count)) : EndIf
|
|
If b(a(n_Count))=1 And fitD=0 : fitD=n_Count : EndIf
|
|
b(a(n_Count))=1
|
|
If CompareMemory(@b(),@c(),1000) And fit1000=0 : fit1000=n_Count : Break : EndIf
|
|
Next
|
|
|
|
Print("First 15 terms: ") : For i=0 To 14 : Print(RSet(Str(a(i)),4)) : Next : PrintN("")
|
|
PrintN("First duplicate term : a("+Str(fitD)+") = "+Str(a(fitD)))
|
|
PrintN("Number of Recaman terms needed to generate all integers from [0..1000]: "+Str(fit1000))
|
|
Input()
|
|
End
|