Tsinsen-A1101格子问题(考查格子行列斜的规律)
2016-03-05 09:06
295 查看
(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)
用上面做个例子, 像这样对称的矩阵,行列规律没什么好说的。
说斜的:比如左上到右下(1, 1)、(2, 2)、(3, 3)、(4, 4)、(5, 5)、(6, 6)、(7, 7)、(8, 8)、(9, 9)、
再如:(1,2)、(2, 3)、(3, 4)、(4,5)、(5, 6)、(6, 7)、(7, 8)、(8, 9)、
再如:(1, 7)、(2, 8)、(3, 9)、
可以观察出规律:自左上到右下:同一条斜线上的坐标(x-y)或(y-x)的值相同: x1-y1 = x2-y2;
同理,
观察从左下到右上, 也可以观察出规律:自左下到右上:同一条斜线上的坐标(x+Y)的值相同: x1+y1 = x2+y2;
根据上面找到的这个规律就好写了:
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)
用上面做个例子, 像这样对称的矩阵,行列规律没什么好说的。
说斜的:比如左上到右下(1, 1)、(2, 2)、(3, 3)、(4, 4)、(5, 5)、(6, 6)、(7, 7)、(8, 8)、(9, 9)、
再如:(1,2)、(2, 3)、(3, 4)、(4,5)、(5, 6)、(6, 7)、(7, 8)、(8, 9)、
再如:(1, 7)、(2, 8)、(3, 9)、
可以观察出规律:自左上到右下:同一条斜线上的坐标(x-y)或(y-x)的值相同: x1-y1 = x2-y2;
同理,
观察从左下到右上, 也可以观察出规律:自左下到右上:同一条斜线上的坐标(x+Y)的值相同: x1+y1 = x2+y2;
根据上面找到的这个规律就好写了:
#include<iostream> using namespace std; int main() { int N, r, c; cin >> N >> r >> c; for(int i = 1; i <= N; i++) cout << "("<< r << "," << i << ")" ; cout << endl; for(int i = 1; i <= N; i++) cout << "("<< i << "," << c << ")" ; cout << endl; for(int i = 1; i <= N; i++) if(r-c+i >=1 && r-c+i <= N) cout << "("<< r-c+i << "," << i << ")" ; cout << endl; for(int i = 1; i <= N; i++) if(r+c-i >=1 && r+c-i <= N) cout << "("<< r+c-i << "," << i << ")" ; return 0; }
相关文章推荐
- 最短路问题------分别用深搜和广搜去解题
- COGS 336 && Vijos 1018 && NOI2003 智破连环阵
- swift语言的网络请求不通过的状态页面
- 前端框架
- Word 页眉页脚页码 技巧
- Leetcode - 287. Find the Duplicate Number
- [R语言画图]气泡图symbols
- iOS学习—UIFont字体
- cout 堆栈,operator<< 运算符重载输出问题
- 98%的人没解出的德国面试逻辑题
- C# for循环 循环中先求长度还是使用list.Count,哪个效率高
- CoreData简单使用
- python list and tuple
- 01.2异步服务IntentService
- 二叉树的深度 (递归与非递归方法整理)
- [WebGL入门]十九,遮挡剔除和深度測试
- 【转】phoneME Project Descrpition
- 0.v0 昨天和朋友讨论的美图2手机主题包匮乏的问题
- 二维指针控制指向NULL的一维指针
- 详解Java编程中Annotation注解对象的使用方法