洛谷-P1014 Cantor表

洛谷-P1014 Cantor表

原题链接:https://www.luogu.com.cn/problem/P1014


题目描述

现代数学的著名证明之一是 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项。

扫描二维码关注公众号,回复: 10647933 查看本文章

输入输出样例

输入 #1

7

输出 #1

1/4

C++代码

#include <iostream>
using namespace std;

int main() {
    int N,i,a=1,b=1;
    cin>>N;
    for(i=1;i<N;)
    {
        ++b;
        while(++i<N&&b>1)
        {
            ++a;
            --b;
        }
        if(i==N) break;
        ++a;
        while(++i<N&&a>1)
        {
            --a;
            ++b;
        }
    }
    cout<<a<<'/'<<b<<endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/yuzec/p/12671297.html
今日推荐