Cantor数表
题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。
样例输入: 3 14 7 12345
样例输出: 2/1 2/4 1/4 59/99
分析:
数表提示我们按照斜线分类。第1条斜线有1个数,第2条有2个数,第3条有3个数……第k条有k个数。这样,前k条斜线一共有S=1+2+3+……+k个数。
第n项在哪条斜线上呢?只要找到一个最小的k,使得S≥n,那么第n项就是第k条斜线上倒数第S-n+1个数(最后一个元素是倒数第1个元素,而不是倒数第0个元素)。
而k的奇偶决定着第k条斜线上数的顺序:若k是奇数,第k条斜线上倒数第i个元素是i/(k+1-i);若k是偶数,第k条斜线上倒数第i个元素是(k+1-i)/i。
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- using namespace std;
- int main()
- {
- int n,i,k;
- while(cin>>n)
- {
- for(i=;;i++)
- {
- k=i*(i+)/;
- if(n<=k)
- break;
- }
- if(i%==)
- printf("%d/%d\n",i-k+n,k-n+);
- else
- printf("%d/%d\n",k-n+,i-k+n);
- }
- return ;
- }
Cantor数表的更多相关文章
- 算法篇——Cantor的数表
来源:<算法竞赛入门经典>例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/ ...
- 《算法竞赛入门经典》5.41数学基础-Cantor的数表
如下数列,第一项是1/1,第二项是1/2,第三项是2/1,第四项是3/1,第五项是2/2,…….输入n,输出第n项.1/1 1/2 1/3 1/4 1/52/1 2/2 2/3 ...
- 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 她冥思苦相了 ...
- Cantor的数表
题目描述 如下数列,前5项分别是1/1,1/2,2/1,3/1,2/2…….输入n,输出第n项. 1/1 1/2 1/3 1/4 1/5 2/1 2/2 2/3 2/4 3 ...
- C语言程序设计100例之(3): Cantor表
例3 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 …… 2/1 ...
- BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]
3529: [Sdoi2014]数表 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1399 Solved: 694[Submit][Status] ...
- C++ 虚函数表解析
转载:陈皓 http://blog.csdn.net/haoel 前言 C++中 的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实 ...
- n维数组实现(可变参数表的使用)
首先先介绍一下可变参数表需要用到的宏: 头文件:#include<cstdarg> void va_start( va_list arg_ptr, prev_param ); type v ...
- C++ 多态、虚函数机制以及虚函数表
1.非virtual函数,调用规则取决于对象的显式类型.例如 A* a = new B(); a->display(); 调用的就是A类中定义的display().和对象本体是B无关系. 2. ...
随机推荐
- 整合改造百度编译器到thinkphp上传图片到OSS
oss上传类库,放到public下,放到extend下,实例化是报错找不到上传类(我不知道为什么).
- if和switch的原理
在C语言中,if和switch是条件分支的重要组成部分.if的功能是计算判断条件的值,根据返回的值的不同来决定跳转到哪个部分.值为真则跳转到if语句块中,否则跳过if语句块.下面来分析一个简单的if实 ...
- Qt 5.7 > QML
本文档翻译自Qt官方文档: http://doc.qt.io/qt-5/qtqml-index.html Qt QML Qt QML模块使用QML语言为开发应用与库提供一个框架.它定义并实现了语言与引 ...
- 浏览器 CSS 兼容写法的测试总结
做前端最讨厌的就是 IE6,7,8,虽然被淘汰的浏览器,但是在中国用户仍然很多,不可能像国外网站一样直接就不管它了,这样会流失很多流量啊. 现在有了IE9,IE10还好些,几乎和 Chrome,Fir ...
- JAVA监听
http://www.cnblogs.com/xdp-gacl/p/3961929.html 不要按汉字的字面意思理解这东西,其实它就是把某个操作绑到了某个按纽上,当你按那个按纽的时候,它所绑定的操作 ...
- IOS开发小技巧,知识点
1.IOS模拟器第一次打开需要进入“设置”中关掉"Auto-Capitalization"选项. 2.NSInteger转化 NSString类型: [NSString strin ...
- 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)
SQLite数据库是中小站点CMS的最佳选择 SQLite 是一个类似Access的轻量级数据库系统,但是更小.更快.容量更大,并发更高.为什么说 SQLite 最适合做 CMS (内容管理系统)呢? ...
- [妙味JS基础]第四课:JS数据类型、类型转换
知识点总结 JS数据类型:number数字(NaN).string字符串.boolean布尔值.函数类型.object对象(obj.[].{}.null).undefined未定义 typeof 用来 ...
- PAT 团体程序设计天梯赛-练习集 L2-009. 抢红包
没有人没抢过红包吧…… 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(<= 104),即参与发红包和抢红包的总人数,则这些人 ...
- AVFoundation--AVPlayer
// // AVPlayerNetViewController.m // PodsTest // // Created by ZhuYi on 16/4/29. // Copyright © 2016 ...