您的位置:首页 > 其它

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;

根据上面找到的这个规律就好写了:

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: