Recaman's sequence: Difference between revisions

Add BCPL
mNo edit summary
(Add BCPL)
Line 464:
First repeated term:
A( 24 ) = 42</pre>
 
=={{header|BCPL}}==
<lang bcpl>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)
$)</lang>
{{out}}
<pre>First 15 members:
0 1 3 6 2 7 13 20 12 21 11 22 10 23 9
First repeated term:
a!24 = 42</pre>
 
=={{header|C}}==
2,114

edits