MRECAMAN - Recaman’s Sequence
Tác giả: flashmt
Ngôn ngữ: Pascal
const maxn=500000;
maxk=3100000;
var d:array[1..maxk] of byte;
a:array[0..maxn] of longint;
i,n,j:longint;
procedure init;
var i:longint;
begin
fillchar(d,sizeof(d),0);
fillchar(a,sizeof(a),0);
for i:=1 to maxn do
begin
if (a[i-1]>i) and (d[a[i-1]-i]=0) then a[i]:=a[i-1]-i
else a[i]:=a[i-1]+i;
d[a[i]]:=1;
end;
end;
begin
init;
readln(n);
repeat
writeln(a[n]);
readln(n);
until n=-1;
end.