1437: [NOIP1999]Cantor表 T1
题目描述
现代数学的著名证明之一是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≤10000000)
输出
输出:表中的第N项
样例输入
7
样例输出
1/4
提示
很简单的哦~
不想多说话,上代码
#include<cstdio>
#include<cmath>
int main ()
{
int n,sum=0,i=1;
scanf("%d",&n);
while(sum < n)
{
i++;
sum = i*(i - 1)/2;
}
int a = sum-n;
if((i - 1) % 2 != 0)
{
//cout << 1 + a << "/" << i - 1 - a;
printf("%d/%d",1+a,i-1-a);
}
else
//cout << i - 1 -dif << "/" << 1 + dif;
printf("%d/%d",i-1-a,1+a);
}
记得点赞+关注哦
浙公网安备 33010602011771号