首页 > 学院 > 开发设计 > 正文

Cantor表

2019-11-11 04:35:50
字体:
来源:转载
供稿:网友
查看提交 统计提问总时间限制: 1000ms 内存限制: 65536kB 描述

现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:

我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…

给定N,求第N项。

输入一个整数N(1≤N≤10000000)。输出一个分数,即表中的第N项。样例输入
7样例输出
1/4

           本题采用的循环遍历的方法,下面附上ac代码。若有疑问或者有更好的方法欢迎提出加以交流。

      

#include<stdio.h>int main(){    int i,j,k=1,t=1,n;    scanf("%d",&n);      while(t<=n)    {       if(k%2==0)       {                j=k;           for(i=1;j>=1&&i<=k;i++)           {             if(t==n)                   PRintf("%d/%d ",i,j);               j--;               t++;           }       }       else if(k%2!=0)       {           j=1;           for(i=k;j<=k&&i>=1;i--)           {                 if(t==n)                   printf("%d/%d ",i,j);                  j++;                  t++;           }       }         k++;    }    return 0;}


上一篇:尺取法

下一篇:背包基础问题

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表