题目描述
现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
1/1 , 1/2 , 1/3 , 1/4, 1/5, …
2/1, 2/2 , 2/3, 2/4, …
3/1 , 3/2, 3/3, …
4/1, 4/2, …
5/1, …
…
我们以 Z 字形给上表的每一项编号。第一项是 1/1,然后是 1/2,2/1,3/1,2/2,…
输入格式
整数N(1≤N≤10^7)。
输出格式
表中的第 N 项。将该表转换为更易找规律的行列形式
#include<stdio.h>
main()
{
int n,i=0,j,t=0;
scanf("%d",&n);
while(n>t)
{
i++;//得到行数
t+=i;
}
j=n-(t-i);//得到列,行列确定该数
if(i%2==0)//偶数行,奇数行变化不同
printf("%d/%d",j,i+1-j);
else
printf("%d/%d",i+1-j,j);
}