Cantor表巧妙的做法

int n,i=1;
    cin>>n;
    while(n-i>0){
        n-=i;           cout<<"n="<<n<<" i="<<i<<endl;
        i++;
    }
    cout<<i-n+1<<"/"<<n<<endl; 


输入 : 22
输出:
n=21 i=1
n=19 i=2
n=16 i=3
n=12 i=4
n=7 i=5
n=1 i=6
7/1
////////////////////////// 和 (斜对角) ////////////////////////////////
1
2
3

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

原文地址:https://www.cnblogs.com/tinyork/p/3512239.html