Van Eck sequence: Difference between revisions

Content added Content deleted
(Add CLU)
(Added solution for Action!)
Line 363: Line 363:
0 0 1 0 2 0 2 2 1 6
0 0 1 0 2 0 2 2 1 6
4 7 30 25 67 225 488 0 10 136
4 7 30 25 67 225 488 0 10 136
</pre>

=={{header|Action!}}==
<lang Action!>INT FUNC LastPos(INT ARRAY a INT count,value)
INT pos
pos=count-1
WHILE pos>=0 AND a(pos)#value
DO
pos==-1
OD
RETURN (pos)

PROC Main()
DEFINE MAX="1000"
INT ARRAY seq(MAX)
INT i,pos

seq(0)=0
FOR i=1 TO MAX-1
DO
pos=LastPos(seq,i-1,seq(i-1))
IF pos>=0 THEN
seq(i)=i-1-pos
ELSE
seq(i)=0
FI
OD

PrintE("Van Eck first 10 terms:")
FOR i=0 TO 9
DO
PrintI(seq(i)) Put(32)
OD
PutE() PutE()

PrintE("Van Eck terms 991-1000:")
FOR i=990 TO 999
DO
PrintI(seq(i)) Put(32)
OD
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Van_Eck_sequence.png Screenshot from Atari 8-bit computer]
<pre>
Van Eck first 10 terms:
0 0 1 0 2 0 2 2 1 6

Van Eck terms 991-1000:
4 7 30 25 67 225 488 0 10 136
</pre>
</pre>