• 洛谷 P1014 Cantor表 Label:续命模拟QAQ


    题目描述

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

    输入输出样例

    输入样例#1:
    7
    
    输出样例#1:
    1/4

    代码

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 #define MAXN 2000000
     6 using namespace std;
     7 int N,kase;
     8 int main(){
     9 //    freopen("01.in","r",stdin);
    10     scanf("%d",&N);
    11     int k=1;
    12     while(N>k){
    13         N-=k;++k;
    14     }
    15     
    16     int i=0,j=0;
    17     if(k&1){
    18         i=k+1,j=0;
    19         while(N--){
    20             --i;++j;
    21         }
    22     }
    23     else{
    24         i=0,j=k+1;
    25         while(N--){
    26             ++i;--j;
    27         }
    28     }
    29     printf("%d/%d",i,j);
    30     return 0;
    31 }

    显然,这是一道水题

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    王道训练营-C语言-1
    错排问题
    王道训练营-C语言-1
    图文处理 生成海报
    根据经纬度按距离排序
    vue总结
    docker+consul
    doker es
    知识库
    php笔记
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/6033892.html
Copyright © 2020-2023  润新知