34 lines
738 B
Plaintext
34 lines
738 B
Plaintext
get "libhdr"
|
|
|
|
// Generate the N'th term of the Recaman sequence
|
|
// given terms 0 to N-1.
|
|
let generate(a, n) be
|
|
a!n := n=0 -> 0, valof
|
|
$( let subterm = a!(n-1) - n
|
|
let addterm = a!(n-1) + n
|
|
if subterm <= 0 resultis addterm
|
|
for i=0 to n-1
|
|
if a!i = subterm resultis addterm
|
|
resultis subterm
|
|
$)
|
|
|
|
let start() be
|
|
$( let a = vec 50 and n = 15 and rep = ?
|
|
|
|
writef("First %N members:*N", n)
|
|
for i = 0 to n-1
|
|
$( generate(a, i)
|
|
writef("%N ", a!i)
|
|
$)
|
|
|
|
writef("*NFirst repeated term:*N")
|
|
rep := valof
|
|
$( generate(a, n)
|
|
for i = 0 to n-1
|
|
if a!i = a!n resultis n
|
|
n := n + 1
|
|
$) repeat
|
|
|
|
writef("a!%N = %N*N", rep, a!rep)
|
|
$)
|