MRECAMAN - Recaman’s Sequence

Tác giả: ll931110

Ngôn ngữ: Pascal

{$MODE DELPHI}
Program MRECAMAN;
        Var
                check: array[-10000000..10000000] of boolean;
                    a: array[0..5000000] of longint;
                    k: longint;

Procedure solve;
          Var
                m: longint;
          Begin
                Fillchar(check, sizeof(check), true);
                check[0]:= false;

                a[0]:= 0;
                For m:= 1 to 500000 do
                        Begin
                                a[m]:= a[m - 1] - m;
                                If (a[m] <= 0) or not check[a[m]] then a[m]:= a[m - 1] + m;
                                check[a[m]]:= false;
                        End;
          End;

Begin
        solve;
        Repeat
                Readln(k);
                If k <> -1 then writeln(a[k]);
        Until k = -1;
End.

Download