题解 P1014 【Cantor表】

2018-12-16 22:40:48


现在是扯淡时间:

这是本蒟蒻第一次发题解,那么我这么垃圾为什么还要发题解呢

其实是我看这道题实在是太简单了,居然出现在BOSS区

其实是因为我看题解里的大佬实在是太大佬了,想找一个简单的办法解决这个问题


好了,扯淡扯完了

可以恢复正题了(我觉得我这个程序应该是题解里最短的了(小声BB))

废话不多说,先上标程

#include <bits/stdc++.h>
using namespace std; 
int main() {
    int n,k=1;
    cin>>n;
    while (n>k) {
        n=n-k;
        k++;
    }
    if(k%2==0) cout<<n<<"/"<<(k+1-n);
    else cout<<k+1-n<<"/"<<n;
    return 0;
} 

这里考虑到一个三角形数的问题

1
2 3
4 5 6
7 8 9 10

以此类推, 这道题其实就是歪过来的遍历(把头向左偏45度), 但是要考虑到奇偶行是相反的, 所以要判断奇偶。

另外就是很容易发现Cantor表里的每一个数都是行数除以列数 所以输出只要这样就好了。。

最后,我只想表达一下自己那么垃圾在这里发题解的愧意

还有有问题的话大佬一定要指出!!(害怕)