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);
} 

记得点赞+关注哦

posted @ 2023-02-26 19:52  我爱OJ  阅读(17)  评论(0)    收藏  举报  来源