1083Cantor表
2015-11-27 16:48
218 查看
[解题思路]
通过找规律来求解该题, 通过把Cantor矩阵放斜得到一个三角形就可以发现,第一行1个数、第二行2个数、第三行3个数、... 、第n行n个数,所以我们首先要找出输入的n在第几行. 接着就是找出该数在这一行中的第几位数, 但是这里有个问题, 当第1行时时从左到右,第2行是从右到左,第3行又是同第1行一样,所以通过这个规律可以得出当
i%2==0时是从右到左的,当i%2!=0是从左到右的.
[代码实现]
#include<iostream> using namespace std; int main() { int n; cin>>n; int i=0; /*第几列*/ while(n>i) /*找出n在第几列*/ { n-=i; /*第i行中的第几个数,我们假定默认是从右到左,即n为从右向左数的第几个*/ i++; } if(i%2==0) /*从右到左*/ { cout<<n<<"/"<<(i-n)+1; } else cout<<(i-n)+1<<"/"<<n; /*从左到右*/ return 0; }
相关文章推荐
- 组合模式(Composite Pattern)
- WEB-INF目录与META-INF目录的作用
- 如何调用系统相机
- RPG游戏中的视野刷新算法
- 德国经济发展史的简单论述
- 程序员必备技能与习惯
- LeetCode(289)Game of Life
- 数据库分库分表
- NSError错误码定义
- SQL Server 自动化运维系列
- addTarget事件添加方法在OC和Swift中的区别
- R爬虫知识点
- windows 8 编译 Ogre 1.8.1 的方法
- [转]html js中name和id的区别和使用分析
- LeetCode(289)Game of Life
- TabHost页和子Activity之间的通讯
- ionic初识
- leetcode--merge two sorted lists(java)
- HFTP Guide
- shared_ptr线程安全性分析