算法竞赛入门 5.4.1 Cantor的数表

重点:

1.按对角线第i行有i个元素,每个元素的分子+分母=i+1,且当i为奇数时,分母从1增加到i;当i为偶数为,分子从1增加到i;


实现代码:

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n;
    freopen("test.in","r",stdin);

    while(cin >> n){
        int k=0;
        while(k*(k+1)/2 < n){
            k++;
        }
        int m = n - k*(k-1)/2;
        if(k % 2 == 0){

            cout << m << "/"<<k+1-m << endl;
        }
        else{
            cout << k+1-m << "/"<< m << endl;
        }

    }

    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章