码迷,mamicode.com
首页 > 其他好文 > 详细

Cantor表

时间:2020-02-05 20:09:32      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:iostream   math   证明   编号   偶数   through   cout   include   orm   

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

1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/51/5, …

2/12/1, 2/22/2 , 2/32/3, 2/42/4, …

3/13/1 , 3/23/2, 3/33/3, …

4/14/1, 4/24/2, …

5/15/1, …

… 我们以ZZ字形给上表的每一项编号。第一项是1/11/1,然后是1/21/2,2/12/1,3/13/1,2/22/2,…

输入格式

整数NN(1≤N≤100000001N10000000)

输出格式

表中的第NN项

输入输出样例

输入 #1
7
输出 #1
1/4
 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int n,a=1;
 5     cin>>n;
 6     for(int i=1;i<=n;i++){
 7         if(n>a) n-=a;
 8         else break;
 9         a++;
10     }
11     a++;
12     if(a%2==1) cout<<n<<"/"<<a-n;
13     else cout<<a-n<<"/"<<n;
14     return 0;
15 }

非常水的一道题,

按照等差数列1,2,3,4,5.....

找到在哪一斜列(a),

第a斜列就有a个数,

并且分子分母之和为a+1;

然后用剩余的n求,

如果a为偶数,

就是从分母为1开始,

所以分母为n,

分子就是a+1-n;(因为我前面a++了,所以写的a-n)

为基数反之。

昨天忘写博客了啊!!!

啊啊啊啊啊啊啊啊啊啊啊啊!!!

QAQ

Cantor表

标签:iostream   math   证明   编号   偶数   through   cout   include   orm   

原文地址:https://www.cnblogs.com/sxy2004/p/12266188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!