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.

Download