p1954.pas
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 90 行
PAS
90 行
PROGRAM p1954;
CONST
max=100000;
VAR
n :Longint;
x,y :array[1..max]of Longint;
PROCEDURE MakePos;
var
i,j :Longint;
p,c :Longint;
begin
p:=1;
c:=0;
x[1]:=0;
y[1]:=0;
while true do
begin
inc(c);
for i:=0 downto -c do
begin
inc(p);
x[p]:=i;
y[p]:=c;
if p>=max then exit;
end;
for i:=c-1 downto 1 do
begin
inc(p);
x[p]:=-c;
y[p]:=i;
if p>=max then exit;
end;
for i:=-c to -1 do
begin
inc(p);
x[p]:=i;
y[p]:=-c-i;
if p>=max then exit;
end;
for i:=0 to c do
begin
inc(p);
x[p]:=i;
y[p]:=-c;
if p>=max then exit;
end;
for i:=-c+1 to 1 do
begin
inc(p);
x[p]:=c;
y[p]:=i;
if p>=max then exit;
end;
for i:=c-1 downto 1 do
begin
inc(p);
x[p]:=i;
y[p]:=c+1-i;
if p>=max then exit;
end;
end;
end;
BEGIN
MakePos;
while not eof do
begin
Readln(n);
writeln(x[n],' ',y[n]);
end;
END.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?