1999年分区联赛普级组之一 Cantor表
Description
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
Input
整数N(1≤N≤10000000)
Output
表中的第N项
Sample Input
7
Sample Output
1/4
分析:先找到第n项在第几列(斜着的),通过观察我们可以发现奇数列分子递减,分母递增,偶数列反之,然后就可以枚举啦。
代码
var
i,j,n,p:longint;
begin
readln(n);
p:=1;
while n-p>0 do
begin
dec(n,p);
inc(p);
end;
if odd(p) then
begin
i:=p+1;
j:=0;
while n>0 do
begin
dec(n);
dec(i);
inc(j);
end;
end
else begin
i:=0;
j:=p+1;
while n>0 do
begin
dec(n);
inc(i);
dec(j);
end;
end;
writeln(i,'/',j);
end.