《算法竞赛入门经典》5.41数学基础-Cantor的数表
2016-03-28 20:21
274 查看
如下数列,第一项是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/1 3/2 3/3
4/1 4/2
5/1
样例输入:
3
14
7
12345
样例输出:
2/1
2/4
1/4
59/99
方法一:
View Code
分析:
用n减去前k条斜线上的个数后再和第k条斜线上个数相比即得所求数位置。
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
样例输入:
3
14
7
12345
样例输出:
2/1
2/4
1/4
59/99
方法一:
#include <stdio.h> int main() { int n; while (scanf("%d", &n) == 1) { int k = 1; while (k < n) //k为第n项所在行数,循环的意义为所求数在第k条斜线第n项 { n -= k; //n减去第k条斜线上的数 k++; } if (k%2 == 1) printf("%d/%d\n", k+1-n, n); //表示输出第k斜线倒数第(k-n)+1项 else printf("%d/%d\n", n, k+1-n); //表示输出第k斜线正数第n项 } return 0; }
View Code
分析:
用n减去前k条斜线上的个数后再和第k条斜线上个数相比即得所求数位置。
相关文章推荐
- 【回顾】Struts封装MVC辛酸史
- MFC ado 连接sql server提示未知错误
- iOS UITableView2
- 2016-03-28缓存
- UVA 221 - Urban Elevations(离散化)!!!!!!
- 自制操作系统 第一天(综述)
- 状态机工作流
- linux 内核参数优化
- 轮换相乘的小程序
- 浅谈iOS设计中关于传值的问题
- Java网络编程(URL&URLConnection)
- caffe Accuracy.cpp
- HelloAndroidUpDate
- 东北衰败宣告了国企城市的破产
- 东北衰败宣告了国企城市的破产
- Java Vector 构造函数与增长的探究
- JAVA SE核心 学习day01
- javascrip中ajax
- 字符串的旋转 (增改版)
- Bzoj1458:士兵占领:带上下界的网络流